Combine this two pinescript into a signle correct pinescript code without any syntext errors.

//@version=4
study("Support Resistance Channels", "SRchannel", overlay = true, max_bars_back = 501)
prd = input(defval = 10, title="Pivot Period", minval = 4, maxval = 30, group = "Settings 🔨", tooltip="Used while calculating Pivot Points, checks left&right bars")
ppsrc = input(defval = 'High/Low', title="Source", options = ['High/Low', 'Close/Open'], group = "Settings 🔨", tooltip="Source for Pivot Points")
ChannelW = input(defval = 5, title = "Maximum Channel Width %", minval = 1, maxval = 8, group = "Settings 🔨", tooltip="Calculated using Highest/Lowest levels in 300 bars")
minstrength = input(defval = 1, title = "Minimum Strength", minval = 1, group = "Settings 🔨", tooltip = "Channel must contain at least 2 Pivot Points")
maxnumsr = input(defval = 6, title = "Maximum Number of S/R", minval = 1, maxval = 10, group = "Settings 🔨", tooltip = "Maximum number of Support/Resistance Channels to Show") - 1
loopback = input(defval = 290, title = "Loopback Period", minval = 100, maxval = 400, group = "Settings 🔨", tooltip="While calculating S/R levels it checks Pivots in Loopback Period")
res_col = input(defval = color.new(color.red, 75), title = "Resistance Color", group = "Colors 🟡🟢🟣")
sup_col = input(defval = color.new(color.lime, 75), title = "Support Color", group = "Colors 🟡🟢🟣")
inch_col = input(defval = color.new(color.gray, 75), title = "Color When Price in Channel", group = "Colors 🟡🟢🟣")
showpp = input(defval = false, title = "Show Pivot Points", group = "Extras ⏶⏷")
showsrbroken = input(defval = false, title = "Show Broken Support/Resistance", group = "Extras ⏶⏷")
showthema1en = input(defval = false, title = "MA 1", inline = "ma1")
showthema1len = input(defval = 50, title = "", inline = "ma1")
showthema1type = input(defval = "SMA", title = "", options = ["SMA", "EMA"], inline = "ma1")
showthema2en = input(defval = false, title = "MA 2", inline = "ma2")
showthema2len = input(defval = 200, title = "", inline = "ma2")
showthema2type = input(defval = "SMA", title = "", options = ["SMA", "EMA"], inline = "ma2")

ma1 = showthema1en ? (showthema1type == "SMA" ? sma(close, showthema1len) : ema(close, showthema1len)) : na
ma2 = showthema2en ? (showthema2type == "SMA" ? sma(close, showthema2len) : ema(close, showthema2len)) : na

plot(ma1, color = not na(ma1) ? color.blue : na)
plot(ma2, color = not na(ma2) ? color.red : na)

// get Pivot High/low
float src1 =  ppsrc == 'High/Low' ? high : max(close, open)
float src2 =  ppsrc == 'High/Low' ? low: min(close, open)
float ph = pivothigh(src1, prd, prd)
float pl = pivotlow(src2, prd, prd) 

// draw Pivot points
plotshape(ph and showpp, text = "H",  style = shape.labeldown, color = na, textcolor = color.red, location = location.abovebar, offset = -prd)
plotshape(pl and showpp, text = "L",  style = shape.labelup, color = na, textcolor = color.lime, location = location.belowbar, offset = -prd)

//calculate maximum S/R channel width
prdhighest =  highest(300)
prdlowest = lowest(300)
cwidth = (prdhighest - prdlowest) * ChannelW / 100

// get/keep Pivot levels
var pivotvals= array.new_float(0)
var pivotlocs= array.new_float(0)
if ph or pl
    array.unshift(pivotvals, ph ? ph : pl)
    array.unshift(pivotlocs, bar_index)
    for x = array.size(pivotvals) - 1 to 0
        if bar_index - array.get(pivotlocs, x) > loopback // remove old pivot points
            array.pop(pivotvals)
            array.pop(pivotlocs)
            continue
        break

//find/create SR channel of a pivot point
get_sr_vals(ind)=>
    float lo = array.get(pivotvals, ind)
    float hi = lo
    int numpp = 0
    for y = 0 to array.size(pivotvals) - 1
        float cpp = array.get(pivotvals, y)
        float wdth = cpp <= hi ? hi - cpp : cpp - lo
        if wdth <= cwidth // fits the max channel width?
            if cpp <= hi
                lo := min(lo, cpp)
            else
                hi := max(hi, cpp)
                
            numpp := numpp + 20 // each pivot point added as 20
    [hi, lo, numpp] 

// keep old SR channels and calculate/sort new channels if we met new pivot point
var suportresistance = array.new_float(20, 0) // min/max levels
changeit(x, y)=>
    tmp = array.get(suportresistance, y * 2)
    array.set(suportresistance, y * 2, array.get(suportresistance, x * 2))
    array.set(suportresistance, x * 2, tmp)
    tmp := array.get(suportresistance, y * 2 + 1)
    array.set(suportresistance, y * 2 + 1, array.get(suportresistance, x * 2 + 1))
    array.set(suportresistance, x * 2 + 1, tmp)
    
if ph or pl
    supres = array.new_float(0)  // number of pivot, strength, min/max levels
    stren = array.new_float(10, 0)
    // get levels and strengs
    for x = 0 to array.size(pivotvals) - 1
        [hi, lo, strength] = get_sr_vals(x)
        array.push(supres, strength)
        array.push(supres, hi)
        array.push(supres, lo)
    
    // add each HL to strengh
    for x = 0 to array.size(pivotvals) - 1
        h = array.get(supres, x * 3 + 1)
        l = array.get(supres, x * 3 + 2)
        s = 0
        for y = 0 to loopback
            if (high[y] <= h and high[y] >= l) or
               (low[y] <= h and low[y] >= l)
                s := s + 1
        array.set(supres, x * 3, array.get(supres, x * 3) + s)
    
    //reset SR levels
    array.fill(suportresistance, 0)
    // get strongest SRs
    src = 0
    for x = 0 to array.size(pivotvals) - 1
        stv = -1. // value
        stl = -1 // location
        for y = 0 to array.size(pivotvals) - 1
            if array.get(supres, y * 3) > stv and array.get(supres, y * 3) >= minstrength * 20
                stv := array.get(supres, y * 3)
                stl := y
        if stl >= 0
            //get sr level
            hh = array.get(supres, stl * 3 + 1)
            ll = array.get(supres, stl * 3 + 2)
            array.set(suportresistance, src * 2, hh)
            array.set(suportresistance, src * 2 + 1, ll)
            array.set(stren, src, array.get(supres, stl * 3))
            
            // make included pivot points' strength zero 
            for y = 0 to array.size(pivotvals) - 1
                if (array.get(supres, y * 3 + 1) <= hh and array.get(supres, y * 3 + 1) >= ll) or
                   (array.get(supres, y * 3 + 2) <= hh and array.get(supres, y * 3 + 2) >= ll)
                    array.set(supres, y * 3, -1)

            src += 1
            if src >= 10
                break
    
    for x = 0 to 8
        for y = x + 1 to 9
            if array.get(stren, y) > array.get(stren, x)
                tmp = array.get(stren, y) 
                array.set(stren, y, array.get(stren, x))
                changeit(x, y)
                
    
get_level(ind)=>
    float ret = na
    if ind < array.size(suportresistance)
        if array.get(suportresistance, ind) != 0
            ret := array.get(suportresistance, ind)
    ret
    
get_color(ind)=>
    color ret = na
    if ind < array.size(suportresistance)
        if array.get(suportresistance, ind) != 0
            ret := array.get(suportresistance, ind) > close and array.get(suportresistance, ind + 1) > close ? res_col :
                   array.get(suportresistance, ind) < close and array.get(suportresistance, ind + 1) < close ? sup_col :
                   inch_col
    ret

var srchannels = array.new_box(10)
for x = 0 to min(9, maxnumsr)
    box.delete(array.get(srchannels, x))
    srcol = get_color(x * 2)
    if not na(srcol)
        array.set(srchannels, x, 
                  box.new(left = bar_index, top = get_level(x * 2), right = bar_index + 1, bottom = get_level(x * 2 + 1), 
                          border_color = srcol, 
                          border_width = 1,
                          extend = extend.both, 
                          bgcolor = srcol))

resistancebroken = false
supportbroken = false

// check if it's not in a channel
not_in_a_channel = true
for x = 0 to min(9, maxnumsr)
    if close <= array.get(suportresistance, x * 2) and close >= array.get(suportresistance, x * 2 + 1) 
        not_in_a_channel := false

// if price is not in a channel then check broken ones
if not_in_a_channel
    for x = 0 to min(9, maxnumsr)
        if close[1] <= array.get(suportresistance, x * 2) and close > array.get(suportresistance, x * 2)
            resistancebroken := true
        if close[1] >= array.get(suportresistance, x * 2 + 1) and close < array.get(suportresistance, x * 2 + 1)
            supportbroken := true

alertcondition(resistancebroken, title = "Resistance Broken", message = "Resistance Broken")
alertcondition(supportbroken, title = "Support Broken", message = "Support Broken")
plotshape(showsrbroken and resistancebroken, style = shape.triangleup, location = location.belowbar, color = color.new(color.lime, 0), size = size.tiny)
plotshape(showsrbroken and supportbroken, style = shape.triangledown, location = location.abovebar, color = color.new(color.red, 0), size = size.tiny)


--------------

// @version=6
indicator("Bottomfinder", shorttitle="BOT", timeframe="", timeframe_gaps=true, format=format.price, precision=4)


i1 = input.int(20, title="P1", minval=2)
i2 = input.int(30, title="P2", minval=1)
i3 = input.int(20, title="P3", minval=1)
i4 = input.int(14, title="P4", minval=1)
i5 = input.int(10, title="P5", minval=1)


var float _k0 = 0.0
var float _k1 = 1.0
var float _k05 = 0.5


_fHi(src, len) => ta.highest(src, len)
_fLo(src, len) => ta.lowest(src, len)
_fSma(src, len) => ta.sma(src, len)
_fAtr(len) => ta.atr(len)
_fChg(src, len) => ta.change(src, len)
_fMax(a,b) => math.max(a, b)
_fMin(a,b) => math.min(a,b)
_fAbs(a) => math.abs(a)
_fNz(src, rep) => nz(src, rep)


_vH1 = _fHi(high, i1)
_vL1 = _fLo(low, i1)
_vR1 = _vH1 - _vL1
_vR1_chk = _vR1 > _k0
_vCRP_raw = (close - _vL1) / _vR1
_vCRP_adj = _vR1_chk ? _vCRP_raw : _k05
_vCRP = _fMax(_k0, _fMin(_k1, _vCRP_adj))
_vPNL = _k1 - _vCRP


_vAV1 = _fSma(volume, i2)
_vAV1_chk = _vAV1 > _k0
_vVR1_raw = volume / _vAV1
_vVR1 = _fNz(_vAV1_chk ? _vVR1_raw : _k1, _k1)


_vS1 = high - low
_vS1_chk = _vS1 > _k0
_vIRS_raw = close / _vS1
_vIRS = _fNz(_vS1_chk ? _vIRS_raw : _k0, _k0)
_vAS1 = _fSma(_vS1, i3)
_vISVA_raw = _vAS1 / _vS1
_vISVA = _fNz(_vS1_chk ? _vISVA_raw : _k0, _k0)
_vIER_raw = volume / _vS1
_vIER = _fNz(_vS1_chk ? _vIER_raw : _k0, _k0)


_vAtr1 = _fAtr(i4)


_vPMC = _fChg(close[1], i5)
_vPM1 = _fNz(_vPMC, _k0)


_sigA_raw = _vPNL * _vVR1 * _vIRS
sigA = _fNz(_sigA_raw, _k0)
_sigB_raw = _vPNL * _vISVA
sigB = _fNz(_sigB_raw, _k0)
_sigC_raw = _vPNL * _vIER 
sigC = _fNz(_sigC_raw, _k0)
_vMaxAB = _fMax(sigA, sigB)
_vAtr1_chk = _vAtr1 > _k0
_sigD_raw = _vMaxAB / _vAtr1
sigD = _fNz(_vAtr1_chk ? _sigD_raw : _k0, _k0)
_vPM1_chk = _vPM1 < _k0
_vNMA_abs = _fAbs(_vPM1)
_vNMA_calc = _k1 + _vNMA_abs
_vNMA = _vPM1_chk ? _vNMA_calc : _k1
sigE = sigB * _vNMA
sigF = sigA * _vNMA
_vAtrP = _fNz(_vAtr1[1], _k0)
_vAtrP_chk = _vAtrP != _k0
_vAtrPC_raw = (_vAtr1 - _vAtrP) / _vAtrP
_vAtrPC_nz = _fNz(_vAtrPC_raw, _k0)
_vAtrPC = _vAtrP_chk ? _vAtrPC_nz : _k0
_vVolA_calc = _fMax(_vAtrPC, _k0)
_vVolA = _k1 + _vVolA_calc
sigG = sigA * _vVolA


_dmy1 = math.log(close) * ta.highestbars(high, 10)
_dmy2 = math.sin(dayofmonth * 0.1) * _vAtr1


_c1 = color.new(color.red, 0)
_c2 = color.new(color.orange, 0)
_c3 = color.new(color.purple, 0)
_c4 = color.new(color.blue, 0)
_c5 = color.new(color.aqua, 0)
_c6 = color.new(color.lime, 0)
plot(sigA, title="S1", color=_c1, style=plot.style_histogram)
plot(sigB, title="S2", color=_c2, style=plot.style_histogram)
plot(sigD, title="S3", color=_c3, style=plot.style_columns)
plot(sigE, title="S4", color=_c4)
plot(sigF, title="S5", color=_c5)
plot(sigG, title="S6", color=_c6)