source: titan/mediathek/localhoster/hoster.sh

Last change on this file was 46033, checked in by obi, 2 months ago

fix

  • Property svn:executable set to *
File size: 44.3 KB
Line 
1#!/bin/bash
2# first sh box hoster for titannit mfg obi
3
4TYPE=$1
5INPUT=$2
6DEST=$3
7USER=$DEST
8PASS=$4
9
10INPUT=`echo $INPUT | sed 's!/Out/?s=!!g'`
11
12#FILENAME="`echo $SRC | tr '/' '\n' | tail -n1 | sed 's/.sh//'` $INPUT $PAGE $NEXT"
13FILENAME="`echo $INPUT | sed 's/User-Agent.*//' | sed -e 's/|//g' | sed -e 's/\-\+/./g' | sed -e 's/\+\+/./g' | sed -e 's/\&\+/./g' -e 's#\/\+#.#g' -e 's/\?\+/./g' -e 's/:\+/./g' -e 's/;\+/./g' -e 's/=\+/./g' -e 's/ \+/./g' -e 's/\.\+/./g'`"
14PICNAME=`echo $FILENAME`
15
16if [ -z "$FILENAME" ]; then
17        FILENAME=none
18fi
19
20if [ -e /etc/.distro ];then
21    DISTRO=$(cat /etc/.distro)
22else
23    DISTRO=6.3
24fi
25ARCH=`cat /etc/.arch`
26BOX=`cat /etc/model`
27TMP=/tmp/localcache
28CMD=/tmp/localhoster
29BIN="$CMD"/bin/python."$ARCH"
30HLSBIN="$CMD"/bin/hlsdl."$ARCH"
31CURLBIN="$CMD"/bin/curl."$ARCH"
32DUKBIN="$CMD"/bin/duk."$ARCH"
33
34if [ "$ARCH" == "i386" ]; then
35BIN=/usr/bin/python
36HLSBIN=/usr/bin/hlsdl
37CURLBIN=/usr/bin/curl
38DUKBIN=/usr/bin/duk
39fi
40
41if [ ! -e "$CURLBIN" ];then CURLBIN=curl; fi
42#USERAGENT='Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0'
43AUTH='aUtzhFRTzuDFa:JNHZbghnjuz'
44API="eyJkYXRhIjoie1widGltZVwiOjI2MDk0NDA0MDEwMjksXCJ2YWxpZFVudGlsXCI6MjYwOTQ0MTAwMTAyOSxcImlwc1wiOltcIjE1NC45Mi4wLjIzXCJdLFwicnVsZXNldFwiOlwiZ3Vlc3RcIixcInZlcmlmaWVkXCI6dHJ1ZSxcImVycm9yXCI6bnVsbCxcImFwcFwiOntcInBsYXRmb3JtXCI6XCJ2YXZvb1wiLFwidmVyc2lvblwiOlwiMi42XCIsXCJzZXJpdmNlXCI6XCIxLjIuMjZcIixcIm9rXCI6dHJ1ZX0sXCJ1dWlkXCI6XCI1T2MyVkR3UmdyMjlSMmVXZTh1Zi9ZUitDOHZaOXAvdVM5eCtSY2cwS1FvPVwifSIsInNpZ25hdHVyZSI6ImFTdGJpT2U0V0gyTzBrZm9TN0VTV2JXTFk3RS9vVTN1OWJNeml2bDdKWkc1eW1HRElmam92blVlQUFpbVdzc3NHUDNOeHg5VDAvL0hnSUlPV21xMkpiUXJ4NFBlYVdQMkM5U1ZNTFA5cjMzYnNURXEvMXZWeVZ3RnBBMm00bTdrNHVpZkpablk4enBqNnNWNGdHUDBGd0NBbCszRnkrSm9zWmhGU0FXYkNUYz0ifQ=="
45USERAGENT='Mozilla%2F5.0+%28Windows+NT+6.3%3B+rv%3A36.0%29+Gecko%2F20100101+Firefox%2F36.0'
46USERAGENT2='Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0'
47CURTIME=`date +%s`
48
49debuglevel=`cat /mnt/config/titan.cfg | grep debuglevel | cut -d"=" -f2`
50PROXY=""
51proxy=`cat /mnt/config/titan.cfg | grep tithek_proxy | cut -d"=" -f2`
52if [ ! -z "$proxy" ];then PROXY="--proxy $proxy"; fi
53curlbin="$CURLBIN $PROXY -k -s -L --connect-timeout 5 --cookie /mnt/network/cookies --cookie-jar /mnt/network/cookies -A $USERAGENT -u $AUTH"
54curlbin2="$CURLBIN $PROXY -k -s --connect-timeout 5 --cookie /mnt/network/cookies --cookie-jar /mnt/network/cookies -A $USERAGENT -u $AUTH"
55
56if [ -e /etc/.oebuild ];then
57        youtubebin="/usr/bin/youtube-dl --no-check-certificate --cookies /mnt/network/cookies --user-agent $USERAGENT --format mp4 --restrict-filenames --ignore-errors -g"
58        youtubebin2="/usr/bin/youtube-dl --no-check-certificate --cookies /mnt/network/cookies --user-agent $USERAGENT --format mp4 --restrict-filenames --ignore-errors -g"
59        youtubebinbg="/usr/bin/youtube-dl --no-check-certificate --cookies /mnt/network/cookies --user-agent $USERAGENT --format mp4 --restrict-filenames --ignore-errors --output"
60else
61        youtubebin="$CMD/lib/youtube_dl/__main__.py --no-check-certificate --cookies /mnt/network/cookies --user-agent $USERAGENT --format mp4 --restrict-filenames --ignore-errors -g"
62        youtubebinbg="$CMD/lib/youtube_dl/__main__.py --no-check-certificate --cookies /mnt/network/cookies --user-agent $USERAGENT --format mp4 --restrict-filenames --ignore-errors --output"
63fi
64
65hlsdlbg="$HLSBIN -u $USERAGENT -o"
66
67if [ -e /mnt/network/cookies ];then sed 's/#HttpOnly_//g' -i /mnt/network/cookies; fi
68
69if [ ! -e /etc/.oebuild ];then
70    export PYTHONHOME=/tmp/localhoster
71    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp/localhoster/lib
72else
73    BIN=python
74fi
75
76if [ "$debuglevel" == "99" ]; then curlbin="$curlbin -v"; fi
77if [ "$debuglevel" == "99" ]; then curlbin2="$curlbin2 -v"; fi
78if [ "$debuglevel" == "99" ]; then youtubebin="$youtubebin --verbose"; fi
79
80wgetbin="wget -q -T2"
81
82if [ "$ARCH" == "i386" ]; then
83        if [ -d "/tmp/localhoster/lib/python2.7" ];then
84                mv -f /tmp/localhoster/lib/python2.7 /tmp/localhoster/lib/python2.7_old
85        fi
86        ln -fs /usr/lib/python2.7 /tmp/localhoster/lib/python2.7
87fi
88
89if [ ! -e "/tmp/localhoster/lib/python2.7/lib-dynload" ] && [ -e /tmp/localhoster/lib/python2.7/lib-dynload."$ARCH" ];then
90#       ln -fs /tmp/localhoster/lib/python2.7/lib-dynload."$ARCH" /tmp/localhoster/lib/python2.7/lib-dynload
91        time mv -f /tmp/localhoster/lib/python2.7/lib-dynload."$ARCH" /tmp/localhoster/lib/python2.7/lib-dynload
92        time rm -rf /tmp/localhoster/lib/python2.7/lib-dynload.*
93fi
94if [ ! -e "/tmp/localhoster/lib/libpython2.7.so.1.0" ] && [ -e /tmp/localhoster/lib/libpython2.7.so.1.0."$ARCH" ];then
95#       ln -fs /tmp/localhoster/lib/libpython2.7.so.1.0."$ARCH" /tmp/localhoster/lib/libpython2.7.so.1.0
96        time mv -f /tmp/localhoster/lib/libpython2.7.so.1.0."$ARCH" /tmp/localhoster/lib/libpython2.7.so.1.0
97        time rm -f /tmp/localhoster/lib/libpython2.7.so.1.0.*
98fi
99if [ ! -e "/tmp/localhoster/lib/libcrypto.so.1.0.0" ] && [ -e /tmp/localhoster/lib/libcrypto.so.1.0.0."$ARCH" ];then
100#       ln -fs /tmp/localhoster/lib/libcrypto.so.1.0.0."$ARCH" /tmp/localhoster/lib/libcrypto.so.1.0.0
101        time mv -f /tmp/localhoster/lib/libcrypto.so.1.0.0."$ARCH" /tmp/localhoster/lib/libcrypto.so.1.0.0
102        time rm -f /tmp/localhoster/lib/libcrypto.so.1.0.0.*
103fi
104if [ ! -e "/tmp/localhoster/lib/libssl.so.1.0.0" ] && [ -e /tmp/localhoster/lib/libssl.so.1.0.0."$ARCH" ];then
105#       ln -fs /tmp/localhoster/lib/libssl.so.1.0.0."$ARCH" /tmp/localhoster/lib/llibssl.so.1.0.0
106        time mv -f /tmp/localhoster/lib/libssl.so.1.0.0."$ARCH" /tmp/localhoster/lib/libssl.so.1.0.0
107        time rm -f /tmp/localhoster/lib/libssl.so.1.0.0.*
108fi
109
110if [ -e "$TMP/hoster.tar" ]; then time rm -f $TMP/hoster.tar; fi
111if [ -e "$TMP/parser.tar" ]; then time rm -f $TMP/parser.tar; fi
112
113if [ "$ARCH" == "sh4" ];then #&& [ "$BOX" != "ufs912" ]; then
114        if [ -e "$CMD/lib/python2.7/lib-dynload.mipsel" ]; then time rm -rf $CMD/lib/python2.7/lib-dynload.mipsel; fi
115        if [ -e "$CMD/lib/python2.7/lib-dynload.arm" ]; then time rm -rf $CMD/lib/python2.7/lib-dynload.arm; fi
116
117        if [ -e "$CMD/lib/libpython2.7.so.1.0.mipsel" ]; then time rm -rf $CMD/lib/libpython2.7.so.1.0.mipsel; fi
118        if [ -e "$CMD/lib/libpython2.7.so.1.0.arm" ]; then time rm -rf $CMD/lib/libpython2.7.so.1.0.arm; fi
119
120        if [ -e "$CMD/lib/libssl.so.1.0.0.mipsel" ]; then time rm -rf $CMD/lib/libssl.so.1.0.0.mipsel; fi
121        if [ -e "$CMD/lib/libssl.so.1.0.0.arm" ]; then time rm -rf $CMD/lib/libssl.so.1.0.0.arm; fi
122
123        if [ -e "$CMD/lib/libcrypto.so.1.0.0.mipsel" ]; then time rm -rf $CMD/lib/libcrypto.so.1.0.0.mipsel; fi
124        if [ -e "$CMD/lib/libcrypto.so.1.0.0.arm" ]; then time rm -rf $CMD/lib/libcrypto.so.1.0.0.arm; fi
125fi
126
127hostercheck=`echo "$INPUT" | tr 'A-Z' 'a-z' | sed 's!://!\n!' | cut -d"/" -f1 | tail -n1 | tr '.' '\n' | wc -l`
128hosterline=`expr $hostercheck - 1`
129if [ "$hosterline" == "0" ];then hosterline=1; fi
130hoster=`echo $INPUT | tr 'A-Z' 'a-z' | sed 's!://!\n!' | cut -d"/" -f1 | tail -n1 | cut -d"." -f$hosterline`
131
132ecostream()
133{
134        hosterurl=http://www.ecostream.tv
135        data="tpm=`$curlbin $INPUT | grep footerhash | cut -d"'" -f2``$curlbin $INPUT | grep superslots | cut -d"'" -f2`&id=`$curlbin $INPUT | grep data-id | cut -d'"' -f4`"
136        streampage=`$curlbin $hosterurl/js/ecoss.js | grep "$.post('" | grep videos | cut -d"'" -f2`
137        streamurl=$hosterurl`$curlbin -H "X-Requested-With: XMLHttpRequest" -X POST --data "$data" --referer $INPUT $hosterurl/$streampage | cut -d'"' -f6`
138        if [ "`echo $streamurl | grep DOCTYPE | wc -l`" -eq 0 ] && [ "$streamurl" != "$hosterurl" ];then
139                echo $streamurl
140        fi
141}
142
143giga()
144{
145        streampage=`$curlbin $INPUT | grep "<iframe src=" | cut -d'"' -f2 | head -n1`
146        streamurl=`$curlbin $streampage | grep '{file:' | cut -d'"' -f2 | grep 1080p`
147        if [ -z "$streamurl" ];then
148                streamurl=`$curlbin $streampage | grep '{file:' | cut -d'"' -f2 | grep 720p`
149        fi
150        if [ -z "$streamurl" ];then
151                streamurl=`$curlbin $streampage | grep '{file:' | cut -d'"' -f2 | grep 480p`
152        fi
153        if [ -z "$streamurl" ];then
154                streamurl=`$curlbin $streampage | grep '{file:' | cut -d'"' -f2 | grep 360p`
155        fi
156        if [ -z "$streamurl" ];then
157                streamurl=`$curlbin $streampage | grep '{file:' | cut -d'"' -f2 | grep 240p`
158        fi
159        if [ -z "$streamurl" ];then
160                streamurl=`$curlbin $streampage | grep '{file:' | cut -d'"' -f2 | grep 180p`
161        fi
162        echo $streamurl
163}
164
165vidup()
166{
167        $BIN $CMD/vidup.py $INPUT
168}
169
170nosvideo()
171{
172        $BIN $CMD/nosvideo.py $INPUT
173}
174
175allmyvideos()
176{
177        $BIN $CMD/allmyvideos.py $INPUT
178}
179
180flashx()
181{
182#       $BIN $CMD/flashx.py $INPUT
183#exit
184        $BIN $CMD/flashx.py $INPUT > $TMP/cache.$FILENAME.2
185        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
186        cat $TMP/cache.$FILENAME.2  > $STREAMLIST
187#       cat $TMP/cache.$FILENAME.2 | grep "video/mp4" | sed -nr "s/.*src:\\\'([^']+)\\\'.*/\1/p" > $STREAMLIST
188        echo $STREAMLIST
189}
190
191vshare()
192{
193#       $BIN $CMD/flashx.py $INPUT
194#exit
195        $BIN $CMD/vshare.py $INPUT > $TMP/cache.$FILENAME.2
196        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
197        cat $TMP/cache.$FILENAME.2  > $STREAMLIST
198#       cat $TMP/cache.$FILENAME.2 | grep "video/mp4" | sed -nr "s/.*src:\\\'([^']+)\\\'.*/\1/p" > $STREAMLIST
199        echo $STREAMLIST
200}
201
202openload()
203{
204        $BIN $CMD/openload.py $INPUT
205}
206
207briskfile()
208{
209        $BIN $CMD/briskfile.py $INPUT
210}
211
212vodlockerold()
213{
214        $BIN $CMD/vodlocker.py $INPUT
215}
216
217videoweed()
218{
219        $BIN $CMD/videoweed.py $INPUT
220}
221
222vodzi()
223{
224        $BIN $CMD/vodzi.py $INPUT
225}
226
227youwatch()
228{
229        $BIN $CMD/youwatch.py $INPUT
230}
231
232thevideo()
233{
234        $BIN $CMD/thevideo.py $INPUT
235}
236
237movshare()
238{
239        $BIN $CMD/movshare.py $INPUT
240}
241
242streamcloud()
243{
244        $BIN $CMD/streamcloud.py $INPUT
245}
246
247vidzi()
248{
249        $BIN $CMD/vidzi.py $INPUT
250}
251
252vivo()
253{
254        $BIN $CMD/vivo.py $INPUT
255}
256
257vidto()
258{
259        $BIN $CMD/vidto.py $INPUT
260}
261
262goldesel()
263{
264        $BIN $CMD/goldesel.py $INPUT
265}
266
267cloudflare()
268{
269        mkdir $TMP > /dev/null 2>&1
270        rm -f $TMP/cache.hoster.$hoster.1 > /dev/null 2>&1
271        $BIN $CMD/cloudflare.py $INPUT > $TMP/cache.hoster.$hoster.1 2>&1
272        if [ `cat $TMP/cache.hoster.$hoster.1 | grep "urllib2.HTTPError" | wc -l` -eq 1 ];then
273                ERROR=`cat $TMP/cache.hoster.$hoster.1 | grep urllib2.HTTPError:`
274                echo "errormsg=$ERROR"
275        else
276                cat $TMP/cache.hoster.$hoster.1
277        fi
278}
279
280kinox()
281{
282        mkdir $TMP > /dev/null 2>&1
283        rm -f $TMP/cache.hoster.$hoster.1 > /dev/null 2>&1
284
285        if [ "$TYPE" == "get" ];then
286                $BIN $CMD/cloudflare.py $INPUT > $TMP/cache.hoster.$hoster.1 2>&1
287                if [ `cat $TMP/cache.hoster.$hoster.1 | grep "urllib2.HTTPError" | wc -l` -eq 1 ];then
288                        ERROR=`echo $INPUT | grep urllib2.HTTPError:`
289                        echo "errormsg=$ERROR"
290                else
291                        cat $TMP/cache.hoster.$hoster.1
292                fi
293        elif [ "$TYPE" == "hoster" ];then
294
295                if [ `echo $INPUT | grep "/aGET/" | wc -l` -eq 1 ];then
296                        URL=`$BIN $CMD/cloudflare.py $INPUT | tr -d '\\' | sed -nr 's/.*<iframe src="([^"]+)".*/\1/p'`
297                        if [ -z "$URL" ];then
298                                URL=`$BIN $CMD/cloudflare.py $INPUT | tr -d '\\' | sed -nr 's/.*<a href="([^"]+)".*/\1/p'`
299                        fi
300                        if [ `echo $URL | grep "urllib2.HTTPError" | wc -l` -eq 1 ];then
301                                ERROR=`echo $INPUT | grep urllib2.HTTPError:`
302                                echo "errormsg=$ERROR"
303                        else
304                                if [ `echo $URL | grep ^"//" | wc -l` -eq 1 ];then
305                                        echo "http:$URL"
306                                else
307                                        echo "$URL"
308                                fi
309                        fi
310                else
311                        $BIN $CMD/cloudflare.py $INPUT         
312                fi     
313        fi
314}
315
316nowvideo()
317{
318        $BIN $CMD/nowvideo.py $INPUT
319}
320
321divxstage()
322{
323        $BIN $CMD/divxstage.py $INPUT
324}
325
326novamov()
327{
328        $BIN $CMD/novamov.py $INPUT
329}
330
331xvidstage()
332{
333        $BIN $CMD/xvidstage.py $INPUT
334}
335
336waaw()
337{
338        $BIN $CMD/waaw.py $INPUT
339}
340
341streamango()
342{
343        $BIN $CMD/streamango.py $INPUT
344}
345
346vidlox()
347{
348        $BIN $CMD/vidlox.py $INPUT
349}
350
351vidcloud()
352{
353        $BIN $CMD/vidcloud.py $INPUT
354}
355
356streamz()
357{
358        $BIN $CMD/streamz.py $INPUT
359}
360
361mixdrop()
362{
363        $BIN $CMD/mixdrop.py $INPUT
364}
365
366streamtape()
367{
368        $BIN $CMD/streamtape.py $INPUT
369}
370
371upstream()
372{
373        $BIN $CMD/upstream.py $INPUT
374}
375
376evoload()
377{
378        $BIN $CMD/evoload.py $INPUT
379}
380
381abcvideo()
382{
383        $BIN $CMD/abcvideo.py $INPUT
384}
385
386doodstream()
387{
388        $BIN $CMD/doodstream.py $INPUT
389}
390
391voesx()
392{
393        $BIN $CMD/voesx.py $INPUT
394}
395
396streamcrypt()
397{
398        hoster=$(echo $INPUT | sed -nr 's/.*:\/\/.*\/([^\/]+)\/.*/\1/p')
399        hostercheck=$(echo $hoster | tr '.' '\n' | wc -l)
400        hosterline=$(expr $hostercheck - 1)
401        if [ "$hosterline" == "0" ];then hosterline=1; fi
402        echo $hoster | tr 'A-Z' 'a-z' | cut -d"." -f$hosterline
403        #INPUT=$(echo $INPUT | sed "s!streamcrypt.net/!!")
404}
405
406voe()
407{
408        if [ ! -z "$PROXY" ];then
409                curlbin=$(echo $curlbin | sed "s!$PROXY!!")
410        fi
411        if [ "$ARCH" == "sh4" ];then
412                URL=`$curlbin "$INPUT" | sed -nr "s/.*src: '([^']+)'.*/\1/p" | sed 's/https:/http:/g'`
413        else
414                URL=`$curlbin "$INPUT" | sed -nr "s/.*src: '([^']+)'.*/\1/p"`
415        fi
416        REFERER=`echo "$INPUT" | sed -e 's/=/3D/g' -e 's/&/26/g'`
417        echo "$URL|Referer=$REFERER&User-Agent=$USERAGENT"
418#       echo "$URL"
419}
420
421vodlocker()
422{
423        rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
424
425        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
426        if [ -e "$STREAMLIST" ];then
427                rm -f $STREAMLIST > /dev/null 2>&1
428        fi
429
430        PAGE=`echo $INPUT | cut -d"|" -f1`
431        REFERER=`echo $INPUT | cut -d"|" -f2`
432
433        $curlbin "$PAGE" -o $TMP/cache.$FILENAME.1
434        cat $TMP/cache.$FILENAME.1 | sed 's/<source src/\n<source src/g' | sed -nr "s/.*src='([^']+)'.*/\1/p" | grep getfile >$TMP/cache.$FILENAME.2
435
436        while read -u 3 ROUND; do
437                NEWPAGE="$ROUND"
438
439                $curlbin2 -v "$NEWPAGE" --dump-header $TMP/cache.hoster.$hoster.1
440                cat $TMP/cache.hoster.$hoster.1 | grep ^Location: | cut -d" " -f2 >$TMP/cache.hoster.$hoster.1.url1
441                URL=`cat $TMP/cache.hoster.$hoster.1.url1`"|$REFERER"
442
443                CURTIME=`date +%s`
444                if [ `cat /mnt/network/cookies | grep .movie4k.ag | grep approve | wc -l` -eq 0 ];then
445                        echo ".movie4k.ag     TRUE    /       FALSE   $CURTIME      approve         1" >> /mnt/network/cookies
446                fi
447
448                if [ ! -z "$URL" ];then
449                        echo "$URL" | tr -d '\n' | tr -d '\r' >> $STREAMLIST
450                        echo "" >> $STREAMLIST
451
452                        sed 's/#HttpOnly_//g' -i /mnt/network/cookies
453                        sed 's/.movie2k.ag/.movie4k.ag/g' -i /mnt/network/cookies
454                fi
455
456
457        done 3<$TMP/cache.$FILENAME.2
458        rm $TMP/cache.$FILENAME.* > /dev/null 2>&1
459
460        URL=$STREAMLIST
461
462        echo "$URL"
463}
464
465aliezold()
466{
467        URL=`$curlbin "$INPUT" | sed 's/source:/\nsource:/' | grep ^source: | cut -d"'" -f2`
468        REFERER=`echo "$INPUT" | sed -e 's/=/3D/g' -e 's/&/26/g'`
469        echo "$URL|Referer=$REFERER&User-Agent=$USERAGENT"
470}
471
472aliez()
473{
474        rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
475        #http://emb.aliez.me/player/live.php?id=56180&w=700&h=480"
476        REFERER=`echo "$INPUT" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
477        EXTRA="|Referer=$REFERER&User-Agent=$USERAGENT"
478
479        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
480        if [ -e "$STREAMLIST" ];then
481                rm -f $STREAMLIST > /dev/null 2>&1
482        fi
483
484        $curlbin "$INPUT" -o $TMP/cache.hoster.$hoster.1
485        cat $TMP/cache.hoster.$hoster.1 | sed 's/source:/\nfound=/' | grep ^found= | cut -d"'" -f2 >$TMP/cache.hoster.$hoster.url1
486        URL=`cat $TMP/cache.hoster.$hoster.url1 | head -n1`
487        if [ ! -z "$URL" ];then
488                echo "$URL$EXTRA" >> $STREAMLIST
489        fi
490#       URL=""
491        #file:  'http://a3.aliez.me:8080/hls/streama57449/index.m3u8?st=dgw2dOq8tyFkLLBLn2ycXA',
492
493        cat $TMP/cache.hoster.$hoster.1 | sed 's/file:/\nfound=/' | grep ^found= | cut -d"'" -f2 >$TMP/cache.hoster.$hoster.url2
494        URL=`cat $TMP/cache.hoster.$hoster.url2 | head -n1`
495        if [ ! -z "$URL" ];then
496                echo "$URL$EXTRA" >> $STREAMLIST
497        fi
498#URL=""
499        #"file":                "rtmp%3A%2F%2Fa3.aliez.me%2Flive%2Fstreama57449%3Ftoken%3Dd11304fabb8e64327df8427e1c2fd5d9"
500        cat $TMP/cache.hoster.$hoster.1 | sed 's/"file":/\nfound=/' | grep ^found= | cut -d'"' -f2 >$TMP/cache.hoster.$hoster.url3
501        URL=`cat $TMP/cache.hoster.$hoster.url3 | head -n1`
502
503        if [ "`echo $URL | grep rtmp | wc -l`" -eq 1 ];then
504                #new swfobject.embedSWF("http://i.aliez.me/swf/playernew.swf?0", "mediaspace", "700", "480", "9.0.115.0", false, flashvars, params);
505                cat $TMP/cache.hoster.$hoster.1 | sed 's/swfobject.embedSWF/\nfound=/' | grep ^found= | cut -d'"' -f2 >$TMP/cache.hoster.$hoster.url3.rtmp.swfurl
506                SWFURL=`cat $TMP/cache.hoster.$hoster.url3.rtmp.swfurl | head -n1`
507                URL=`echo "$URL" | sed -e 's/%3A/:/g' -e 's!%2F!/!g' -e 's!%3D!=!g' -e 's!%3F!?!g'`
508                EXTRA=" pageUrl=$REFERER"
509                if [ ! -z "$SWFURL" ];then
510                        EXTRA="$EXTRA swfUrl=$SWFURL swfVfy=1 timeout=15 live=1"
511                fi
512                if [ ! -z "$URL" ];then
513                        echo "$URL$EXTRA" >> $STREAMLIST
514                fi
515        fi
516        URL=$STREAMLIST
517
518
519        echo "$URL"
520}
521
522sport7()
523{
524        #http://sport7.tech/487b826914d11080dce4b502052b012d-live.html
525        #var videoLink = 'http://g4.securestream.sport7.tech/stream/NzYyZDUwZWNkODc5YWM5YjViY2ZkOTVhZGNjOGM1ZTc=/BTSport3.m3u8';
526
527        rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
528        REFERER=`echo "$INPUT" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
529        EXTRA="|Referer=$REFERER&User-Agent=$USERAGENT"
530
531        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
532        if [ -e "$STREAMLIST" ];then
533                rm -f $STREAMLIST > /dev/null 2>&1
534        fi
535
536        $curlbin "$INPUT" -o $TMP/cache.hoster.$hoster.1
537        cat $TMP/cache.hoster.$hoster.1 | sed 's/var videoLink/\nfound=/' | grep ^found= | cut -d"'" -f2 >$TMP/cache.hoster.$hoster.url1
538        URL=`cat $TMP/cache.hoster.$hoster.url1 | head -n1`
539        # enable httponly cookie
540        sed 's/#HttpOnly_//g' -i /mnt/network/cookies
541
542        if [ ! -z "$URL" ];then
543                echo "$URL$EXTRA" > $STREAMLIST
544                #echo "$URL$EXTRA"
545                echo "$STREAMLIST"
546        fi
547       
548       
549#       URL=`$curlbin "$INPUT" | sed 's/var videoLink/\nfound=/' | grep ^found= | cut -d"'" -f2`
550#       REFERER=`echo "$INPUT" | sed -e 's/=/3D/g' -e 's/&/26/g'`
551#       sed 's/#HttpOnly_//g' -i /mnt/network/cookies
552#       echo "$URL|Referer=$REFERER&X-f=96.91.79.87&User-Agent=$USERAGENT"
553#       cat $STREAMLIST
554}
555
556sportstream365()
557{
558        #http://sport7.tech/487b826914d11080dce4b502052b012d-live.html
559        #var videoLink = 'http://g4.securestream.sport7.tech/stream/NzYyZDUwZWNkODc5YWM5YjViY2ZkOTVhZGNjOGM1ZTc=/BTSport3.m3u8';
560
561        rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
562#       REFERER=`echo "$INPUT" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
563        REFERER=`echo "$INPUT" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
564        EXTRA="|Referer=$REFERER&User-Agent=$USERAGENT"
565
566        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
567        if [ -e "$STREAMLIST" ];then
568                rm -f $STREAMLIST > /dev/null 2>&1
569        fi
570
571        $curlbin "$INPUT" -o $TMP/cache.hoster.$hoster.1
572
573        #<input type="hidden" name="game" value="146875046">
574        id=$(cat $TMP/cache.hoster.$hoster.1 | sed -nr 's/.*name="game" value="([^"]+)".*/\1/p')
575        ts=$(date +%s)
576        URL="http://sportstream365.com/LiveFeed/GetGame?id=$id&partner=24"
577
578        $curlbin "$URL" --referer "$REFERER" -H "X-Requested-With: ShockwaveFlash/27.0.0.187" -o $TMP/cache.hoster.$hoster.2
579
580
581        #"VI":"1032572"
582        id=$(cat $TMP/cache.hoster.$hoster.2 | sed -nr 's/.*"VI" :"([^"]+)".*/\1/p')
583        if [ -z "$id" ];then
584                id=$(cat $TMP/cache.hoster.$hoster.2 | sed -nr 's/.*"VI":"([^"]+)".*/\1/p')
585        fi
586        #https://github.com/XvBMC/repository.xvbmc/blob/master/Dependencies/script.module.liveresolver/lib/liveresolver/resolvers/sportstream365.py
587        URL=http://93.189.57.254/edge0/xrecord/$id/prog_index.m3u8
588        # enable httponly cookie
589        sed 's/#HttpOnly_//g' -i /mnt/network/cookies
590
591        if [ ! -z "$URL" ];then
592                echo "$URL$EXTRA" > $STREAMLIST
593                #echo "$URL$EXTRA"
594                echo "$STREAMLIST"
595        fi
596}
597
598sportsonline()
599{
600        #http://sportsonline.pw/livetv/pt-sporttv1.html
601        rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
602        REFERER=`echo "$INPUT" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
603        EXTRA="|Referer=$REFERER&User-Agent=$USERAGENT"
604
605        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
606        if [ -e "$STREAMLIST" ];then
607                rm -f $STREAMLIST > /dev/null 2>&1
608        fi
609
610        $curlbin "$INPUT" -o $TMP/cache.hoster.$hoster.1
611
612        #<iframe src="http://widestream.io/embedClappr.php?live=13593" width="100%" height="100%" scrolling="no" frameborder="0" allowfullscreen="true"></iframe>
613        TMPURL=$(cat $TMP/cache.hoster.$hoster.1 | sed -nr 's/.*iframe src="([^"]+)".*/\1/p')
614
615        $curlbin "$TMPURL" --referer "$REFERER" -H "X-Requested-With: ShockwaveFlash/27.0.0.187" -o $TMP/cache.hoster.$hoster.2
616
617        #source: "http://ultra.widestream.io:8081/wideedge/1022qvk/playlist.m3u8?wmsAuthSign=c2VydmVyX3RpbWU9MTIvOS8yMDE3IDEyOjMyOjQzIEFNJmhhc2hfdmFsdWU9ZW9WeThRL0JmaVA2dnFUQm15Ukkvdz09JnZhbGlkbWludXRlcz0yMA==",
618        TMPURL=$(cat $TMP/cache.hoster.$hoster.2 | sed -nr 's/.*source: "([^"]+)".*/\1/p')
619
620        if [ ! -z "$TMPURL" ];then
621                echo "$TMPURL$EXTRA" > $STREAMLIST
622                #echo "$URL$EXTRA"
623                echo "$STREAMLIST"
624        fi
625}
626
627assia()
628{
629        #http://assia.tv/live/gol-tv/?lang=ru
630        rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
631        REFERER=`echo "$INPUT" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
632        EXTRA="|Referer=$REFERER&User-Agent=$USERAGENT"
633
634        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
635        if [ -e "$STREAMLIST" ];then
636                rm -f $STREAMLIST > /dev/null 2>&1
637        fi
638
639        $curlbin "$INPUT" -o $TMP/cache.hoster.$hoster.1
640
641        #this.videoplayer2600 = new Uppod({m:"video",uid:"videoplayer2600",comment:"",file:"http://video.assia.tv/hls/50.m3u8?md5=UD9zcmEXXgjdB92hTu9_nw&expires=1512784272",st:"uppodvideo",onReady: function(uppod){setTimeout(uppod.Pause, 60000);}});
642        TMPURL=$(cat $TMP/cache.hoster.$hoster.1 | sed -nr 's/.*file:"([^"]+)".*/\1/p' | tail -n1)
643
644        if [ ! -z "$TMPURL" ];then
645                echo "$TMPURL$EXTRA" > $STREAMLIST
646                #echo "$URL$EXTRA"
647                #http://video.assia.tv/hls/50.m3u8?md5=olw9K2ANtWtCPiL6LreprA&expires=1512783904|User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36
648
649                echo "$STREAMLIST"
650        fi
651}
652
653cricfree()
654{
655        #http://cricfree.sc/update/bt2.php
656        rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
657        REFERER=`echo "$INPUT" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
658        EXTRA="|Referer=$REFERER&User-Agent=$USERAGENT"
659
660        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
661        if [ -e "$STREAMLIST" ];then
662                rm -f $STREAMLIST > /dev/null 2>&1
663        fi
664
665        $curlbin "$INPUT" -o $TMP/cache.hoster.$hoster.1
666
667        #<iframe frameborder="0" marginheight="0" allowfullscreen="true" marginwidth="0" height="555" src="http://cricfree.sc/update/bt1.php" id="iframe" name="iframe_a" scrolling="no" width="620">Your Browser Do not Support Iframe</iframe>
668        TMPURL1=$(cat $TMP/cache.hoster.$hoster.1 | grep "<iframe" | grep cricfree | sed -nr 's/.*src="([^"]+)".*/\1/p')
669
670#       $curlbin "$INPUT" -o $TMP/cache.hoster.$hoster.1
671        $curlbin "$TMPURL1" -o $TMP/cache.hoster.$hoster.2
672
673        #<script type='text/javascript'>id='bt2i'; width='620'; height='490';</script><script type='text/javascript' src='http://hi.notkodi.science/streamgame.js'></script>
674        TMPURL2=$(cat $TMP/cache.hoster.$hoster.2 | grep "id=" | sed -nr "s/.*src='([^']+)'.*/\1/p")
675        id=$(cat $TMP/cache.hoster.$hoster.2 | grep "id=" | sed -nr "s/.*id='([^']+)'.*/\1/p")
676
677        $curlbin "$TMPURL2" --referer "$REFERER" -H "X-Requested-With: ShockwaveFlash/27.0.0.187" -o $TMP/cache.hoster.$hoster.3
678
679        #document.write('<iframe allowfullscreen width="'+width+'" height="'+height+'" scrolling="no" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowtransparency="true" src="http://veremos.date/all.php?id='+id+'&p='+p+'&c='+c+'&stretching='
680        TMPURL3=$(cat $TMP/cache.hoster.$hoster.3 | grep document.write | sed -nr 's/.*src="([^"]+)".*/\1/p')
681
682        #var stretching = 'uniform';
683        stretching=$(cat $TMP/cache.hoster.$hoster.3 | sed -nr "s/.*var stretching = '([^']+)'.*/\1/p")
684
685        #var c = '0';
686        c=$(cat $TMP/cache.hoster.$hoster.3 | sed -nr "s/.*var c = '([^']+)'.*/\1/p")
687
688        #var p = '0';
689        p=$(cat $TMP/cache.hoster.$hoster.3 | sed -nr "s/.*var p = '([^']+)'.*/\1/p")
690
691        #http://veremos.date/all.php?id=bt2i&p=0&c=0&stretching=uniform
692        TMPURL3=$(echo $TMPURL3 | sed -e "s/'+id+'/$id/" -e "s/'+p+'/$p/" -e "s/'+c+'/$c/" -e "s/'+stretching+'/$stretching/")
693
694        #$curlbin http://veremos.date/all.php?id=bt2i&p=0&c=0&stretching=uniform" --referer "http://cricfree.sc/update/bt2.php"
695        $curlbin "$TMPURL3" --referer "$REFERER" -H "X-Requested-With: ShockwaveFlash/27.0.0.187" -o $TMP/cache.hoster.$hoster.4
696
697        #<iframe allowfullscreen="" width="100%" height="100%" scrolling="no" frameborder="0" marginwidth="0" marginheight="0" allowtransparency="true" src="http://soretin.stream/embeds/1all.php?id=256512&st=vkWS1ifC7TSE10IQKmgUEQ&e=1512815257&amp;p=0&amp;c=0&amp;stretching="></iframe>
698        TMPURL4=$(cat $TMP/cache.hoster.$hoster.4 | grep "<iframe" | sed -nr 's/.*src="([^"]+)".*/\1/p')
699
700        #$curlbin "http://soretin.stream/embeds/1all.php?id=256512&st=jOQy59wu1omnfUnNywQLDA&e=1512812987&p=0&c=0&stretching=" --referer "http://veremos.date/all.php?id=bt2i&p=0&c=0&stretching=uniform"
701        $curlbin "$TMPURL4" --referer "$TMPURL3" -H "X-Requested-With: ShockwaveFlash/27.0.0.187" -o $TMP/cache.hoster.$hoster.5
702
703        #return(["h","t","t","p",":","\/","\/","8","0",".","8","2",".","6","5",".","1","6","2","\/","c","a","v","s","c","a","m","p","e","o","n","\/","2","5","6","5","1","2",".","m","3","u","8","?","w","m","s","A","u","t","h","S","i","g","n","2","=","N","W","E","x","N","T","Y","3","Y","W","Y","3","N","j","h","l","Z","g","=","=","&","t","o","k","e","n","="].join("") + yUAerrrlsnutgriaaSbea.join("") + document.getElementById("aieBskfcrugtntihSa").innerHTML);
704        TMPURL=$(cat $TMP/cache.hoster.$hoster.5 | grep 'return(\["' | sed -e 's/","//g' -e 's/\\//g'| cut -d'"' -f2)
705
706        #return(["h","t","t","p",":","\/","\/","8","0",".","8","2",".","6","5",".","1","6","2","\/","c","a","v","s","c","a","m","p","e","o","n","\/","2","5","6","5","1","2",".","m","3","u","8","?","w","m","s","A","u","t","h","S","i","g","n","2","=","N","W","E","x","N","T","Y","3","Y","W","Y","3","N","j","h","l","Z","g","=","=","&","t","o","k","e","n","="].join("") + uaagraneeblAStrsyrrUi.join("") + document.getElementById("rBkacSifaguntesith").innerHTML);
707        #uaagraneeblAStrsyrrUi
708        searchtoken1=$(cat $TMP/cache.hoster.$hoster.5 | grep 'return(\["'| sed -e 's/","//g' -e 's/\\//g' | awk '{ print $3 }' | cut -d"." -f1)
709        #var uaagraneeblAStrsyrrUi = ["3Rp","UJ5","ZoY","c2V","J","jgy","X3Z","9MT","XNo","ydm","ZEp","VyX","0OC","VlP","MDI","bWU","UxM","hbH"];
710        TOKEN1=$(cat $TMP/cache.hoster.$hoster.5 | grep "var $searchtoken1" | sed -e 's/","//g' -e 's/\\//g' | cut -d'"' -f2)
711
712        #return(["h","t","t","p",":","\/","\/","8","0",".","8","2",".","6","5",".","1","6","2","\/","c","a","v","s","c","a","m","p","e","o","n","\/","2","5","6","5","1","2",".","m","3","u","8","?","w","m","s","A","u","t","h","S","i","g","n","2","=","N","W","E","x","N","T","Y","3","Y","W","Y","3","N","j","h","l","Z","g","=","=","&","t","o","k","e","n","="].join("") + uaagraneeblAStrsyrrUi.join("") + document.getElementById("rBkacSifaguntesith").innerHTML);
713        #rBkacSifaguntesith
714        searchtoken2=$(cat $TMP/cache.hoster.$hoster.5 | sed -nr 's/.*document.getElementById\("([^"]+)".*/\1/p')
715        #<span style='display:none' id=uieBiSefkngtshatrc>VZbFOMVlSL3F2lZhaE01Ta9xAWMvwQGwPZnMRY9nZ2ppVXWG</span><span style='display:none' id=suteaentirhgBfkSci>bnMWZL3XFlvAhMVpwPZ0pZ9TFSWnVGwaVMGR9Q22aOYZlEx1</span><span style='display:none' id=tSiBkaefnshuticegr>LWVMAbFZ1VaPhO3MnpF2R29ZlvSEGalwTYp9VMZQX0xZnWwG</span><span style='display:none' id=iecaSftBresutghkin>vVxZVQpVMn0ZS1Pp22nO3hwa9ZFTYRaWGFlMl9wZGEbAXLWM</span><span style='display:none' id=SnstuicrBgfitehake>Th2F1QFSWAZ9MWlPv92Vpw0LOZGwRMXbaV3ZElnMnaYpZVxG</span><span style='display:none' id=stBeiuSheiakfcrngt>bYTxap13WP2ZLlhnMF2GVXlwvWVOASaMEnQw9RVZ90GMZpZF</span><span style='display:none' id=ihenkcraesSiugBftt>wL2xZv9nMXwnZGGaAVVWWQFlZS90EMp3TlaVFP2ORbZpY1Mh</span><span style='display:none' id=hftrceSekuiiastngB>1ZXap0LlnO3VlGGZabWRnFZMMEw2xMvhZwpPVFY9VAWT92SQ</span><span style='display:none' id=inBehfgtcSautirkse>x2a2Zp3OF09XLWQZVbMMwFZnGGRpYnvPha19VEMlATVZWlwS</span><span style='display:none' id=rBkacSifaguntesith>MGZVL2wvanFha3ROWlVFQlE9PSZ2YWxpZG1pbnV0ZXM9MTAw</span><span style='display:none' id=etBirkuaiStfehgcsn>ZA1ZQGZOa39nYpVnWpS2llLwFxvawFVZb0MMPREGhXM2TVW9</span><span style='display:none' id=rshfekaguceSitnBit>pRW2TQMZaVlZ29OWFnXaFMLnV1VxZ3Y0ZGpAb9hPMSwvGEwl</span><span style='display:none' id=irBcttfehsganeSiuk>MTpXZWZb3MvnFZ2wlLFGA9nQpa2SYR9E01VxZGhwWMVOVPla</span><span style='display:none' id=skieftSBngitcuarhe>xAG1QET0WG9lnhZFPpYOa2M9lRZXnaFwVSpWLMbwVZ3MVZv2</span><span style='display:none' id=iSnkrBusfceghttiea>32EbYXWFl1Z2VZMVSGv9pZPMZLaFnaTpAh9OxGlQWMwRVw0n</span><span style='display:none' id=utrtiSfieeasBhnkcg>wZGZWxF2bPpahW9EnMV1TvYw92XlVaMpSLGMQl3OVRnA0FZZ</span><span style='display:none' id=SiisktnfeaghceuBrt>29W1LbRnVlMTZwF2WMEpw9AvGVZ0VYSnZXP3OMhxGZlQpFaa</span><span style='display:none' id=scugBteriiSehafktn>lFTMVV9W3ZhZaA1FMn9YpEvVnaxQL2XSZMpGWbwO2R0lZwPG</span><span style='display:none' id=itefaihSreuBgkcnts>Y0Eb2hQannvFZV2ZGZAaLVZlSMGlFp3V9xXPwMMTR9wO1WWp</span><span style='display:none' id=aecnhiigtuekfSrsBt>naYZSMMPbQnvE9hTVW3Ga2pwZ0GMRZwXpWFZ2llLAxOVVF19</span><span style='display:none' id=citeehgiustarnBSkf>XG29ZphlbYMLSaZ9V3PwWlQpGM12a0ZZvEFwVxWAFOMVnnRT</span><span style='display:none' id=rtcenehgusaikBSfit>3hpv2ZnVXV9lWlYxV0M9wMWPSMAnGa2ZQFROpab1ZwZETGLF</span><span style='display:none' id=csSnhfBitteguakeir>ZnXhv2GpMZP0xaAMQ1YVV9lZROWwaFnWT3M9ZlwF2pEVGLbS</span><span style='display:none' id=stigfkinrehBSaceut>p2wl0RQG3OFZhFMnaTxXV9pvZA2LMbVESWlZaVP1YZwMnG9W</span><html>
716        #MGZVL2wvanFha3ROWlVFQlE9PSZ2YWxpZG1pbnV0ZXM9MTAw
717        TOKEN2=$(cat $TMP/cache.hoster.$hoster.5 | sed "s/id=$searchtoken2/\nfoundid=/" | grep ^"foundid=" | cut -d'>' -f2 | cut -d'<' -f1)
718
719        if [ ! -z "$TMPURL" ];then
720#               echo "$TMPURL$token1$token2$EXTRA" > $STREAMLIST
721                #http://89.248.172.95/cavscampeon/256512.m3u8?wmsAuthSign2=NWExNTY3YWY3NjhlZg==&token=c2VydmVyX3RpbWU9MTUxMjgxMjM4NyZoYXNoX3ZhbHVlPVNrcndRU0Z2Mlp2QlUvbjg4N0lLQWc9PSZ2YWxpZG1pbnV0ZXM9MTAw|Referer=http%3A%2F%2Fsoretin.stream%2Fembeds%2F1all.php%3Fid%3D256512%26st%3DjOQy59wu1omnfUnNywQLDA%26e%3D1512812987%26p%3D0%26c%3D0%26stretching%3D&User-Agent=Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.100 Safari/537.36&X-Requested-With=ShockwaveFlash/23.0.0.162
722
723                echo "$TMPURL$TOKEN1$TOKEN2" > $STREAMLIST
724
725                #echo "$URL$EXTRA"
726                echo "$STREAMLIST"
727        fi
728}
729
730#pl.init('http://78.142.19.151:8080/hls/streama113384/index.m3u8?st=dxSilE8xi3eR1Hk5_SLv1w');
731#apl3
732apl3()
733{
734        #http://assia.tv/live/gol-tv/?lang=ru
735        rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
736        REFERER=`echo "$INPUT" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
737        EXTRA="|Referer=$REFERER&User-Agent=$USERAGENT"
738
739        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
740        if [ -e "$STREAMLIST" ];then
741                rm -f $STREAMLIST > /dev/null 2>&1
742        fi
743
744        $curlbin -A "$USERAGENT2" "$INPUT" -o $TMP/cache.hoster.$hoster.1
745        #pl.init('http://87.120.36.57:8080/hls/streama113535/index.m3u8?st=VsL7dEPX4fBHn3tcJmmcKw');
746        TMPURL=$(cat $TMP/cache.hoster.$hoster.1 | grep pl.init | cut -d"'" -f2)
747        # enable httponly cookie
748        sed 's/#HttpOnly_//g' -i /mnt/network/cookies
749
750        if [ ! -z "$TMPURL" ];then
751                #hls://http://tier2.pokercoalition.pw/o10/17733.m3u8?sf=NTk5NGE3YzRhMzljNQ==&token=jvVfe9gic8uQ3QqCXmZemw&expires=1512879969|Referer=http%3A%2F%2Fbro.adca.st%2Fstream.php%3Fid%3D17733%26p%3D1%26c%3D0%26stretching%3Duniform%26old%3D0&User-Agent=Mozilla%2F5.0%20(Windows%20NT%2010.0%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36%20(KHTML,%20like%20Gecko)%20Chrome%2F61.0.3163.100%20Safari%2F537.36
752                echo "$TMPURL$TOKEN$EXTRA" > $STREAMLIST
753                echo "$STREAMLIST"
754        fi
755}
756
757broadcast()
758{
759        #http://assia.tv/live/gol-tv/?lang=ru
760        rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
761        REFERER=`echo "$INPUT" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
762        EXTRA="|Referer=$REFERER&User-Agent=$USERAGENT"
763
764        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
765        if [ -e "$STREAMLIST" ];then
766                rm -f $STREAMLIST > /dev/null 2>&1
767        fi
768
769        #$curlbin --referer "http://bro.adca.st/stream.php?id=17733&p=1&c=0&stretching=uniform&old=0" "http://bro.adca.st/token2.php"
770        $curlbin "http://bro.adca.st/token2.php" --referer "$INPUT" -o $TMP/cache.hoster.$hoster.1
771
772        #{"rumba":"ruYg748QTLGfAn2iZo3bpw&expires=1512880893"}
773        TOKEN=$(cat $TMP/cache.hoster.$hoster.1 | sed -nr 's/.*"rumba":"([^"]+)".*/\1/p' | tail -n1)
774
775        #$curlbin --referer "http://bonstreams.net" "http://bro.adca.st/stream.php?id=17733&p=1&c=0&stretching=uniform&old=0"
776        $curlbin "$INPUT" --referer "http://bonstreams.net" -o $TMP/cache.hoster.$hoster.2
777
778    #trap = "aHR0cDovL3RpZXIyLnBva2VyY29hbGl0aW9uLnB3L28xMC8xNzczMy5tM3U4P3NmPU5UazVOR0UzWXpSaE16bGpOUT09JnRva2VuPQ=
779        TRAP=$(cat $TMP/cache.hoster.$hoster.2 | sed -nr 's/.*trap = "([^"]+)".*/\1/p' | tail -n1)
780
781        echo "$TRAP" > $TMP/cache.hoster.$hoster.base64
782        TMPURL=$(base64 -d $TMP/cache.hoster.$hoster.base64)
783
784        # enable httponly cookie
785        sed 's/#HttpOnly_//g' -i /mnt/network/cookies
786
787        if [ ! -z "$TMPURL" ];then
788                #hls://http://tier2.pokercoalition.pw/o10/17733.m3u8?sf=NTk5NGE3YzRhMzljNQ==&token=jvVfe9gic8uQ3QqCXmZemw&expires=1512879969|Referer=http%3A%2F%2Fbro.adca.st%2Fstream.php%3Fid%3D17733%26p%3D1%26c%3D0%26stretching%3Duniform%26old%3D0&User-Agent=Mozilla%2F5.0%20(Windows%20NT%2010.0%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36%20(KHTML,%20like%20Gecko)%20Chrome%2F61.0.3163.100%20Safari%2F537.36
789                echo "$TMPURL$TOKEN$EXTRA" > $STREAMLIST
790                echo "$STREAMLIST"
791        fi
792}
793
794popofthestream()
795{
796    rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
797
798    #INPUT=http://www.popofthestream.com/embed/aliez-skymain.html
799    HOST=$(echo $INPUT | sed -nr 's!.*://.*/([^/]+).*!\1!p')
800    PFAD=$($curlbin $INPUT | sed -nr 's/.*src=".([^.]+).*/\1/p')
801    #echo HOST $HOST
802    #echo PFAD $PFAD
803    #echo INPUT $INPUT
804    $curlbin "$INPUT" -o $TMP/cache.hoster.$hoster.1
805    HOST=$(echo $INPUT | sed -nr 's!(.*://.*/.*)/.*!\1!p')
806    #<iframe allowFullScreen frameborder=0 marginheight=0 marginwidth=0 scrolling="no" src="./aliez/bein1fr.html" width="728" height="450">Your browser does not support inline frames or is currently configured not to display inline frames.</iframe>
807    #<iframe allowFullScreen frameborder=0 marginheight=0 marginwidth=0 scrolling="no" src="./aliez/skymain.html" width="728" height="450">Your browser does not support inline frames or is currently configured not to display inline frames.</iframe>
808    PFAD=$(cat $TMP/cache.hoster.$hoster.1 | sed -nr 's!.*src=".(.*)" width=.*!\1!p')
809    #echo HOST2 $HOST
810    #echo PFAD2 $PFAD
811    $curlbin "$HOST$PFAD" -o $TMP/cache.hoster.$hoster.2
812    HOST=$(echo $HOST$PFAD | sed -nr 's!(.*://.*/.*/.*)/.*!\1!p')
813    #let fetchResult = await fetch("./skymain.json?" + Date.parse(new Date().toString()));
814    PFAD=$(cat $TMP/cache.hoster.$hoster.2 | sed -nr 's!.*fetch\(\".(.*)\?.*!\1!p')
815    #echo HOST3 $HOST
816    #echo PFAD3 $PFAD
817    $curlbin "$HOST/$PFAD" -o $TMP/cache.hoster.$hoster.3
818    #{"id":"174476"}
819    ID=$(cat $TMP/cache.hoster.$hoster.3 | cut -d'"' -f4)
820    #document.getElementById("player").innerHTML = '<iframe allowFullScreen frameborder=0 marginheight=0 marginwidth=0 scrolling="no" src="http://emb.apl111.me/player/live.php?id=' + chInfos.id + '&w=728&h=450" width="728" height="450">Your browser does not support inline frames or is currently configured not to display inline frames.</iframe>';
821    URL=$(cat $TMP/cache.hoster.$hoster.2 | sed -nr 's/.*src="([^"]+)".*/\1/p' | grep "?id=" | sed "s/'.*'/$ID/")
822
823    #echo HOST4 $HOST
824    #echo PFAD4 $PFAD
825    #echo ID4 $ID
826
827    #echo $URL
828    /tmp/localhoster/hoster.sh get $URL
829}
830
831all()
832{
833        rm -f $TMP/cache.hoster.$hoster.* > /dev/null 2>&1
834        REFERER=`echo "$INPUT" | sed -e 's/=/%3D/g' -e 's/&/%26/g'`
835        EXTRA="|Referer=$REFERER&User-Agent=$USERAGENT"
836
837        STREAMLIST="$TMP/$TYPE.$hoster.$FILENAME.streamlist"
838        if [ -e "$STREAMLIST" ];then
839                rm -f $STREAMLIST > /dev/null 2>&1
840        fi
841
842        rm $TMP/cache.$PARSER.$INPUT.$FROM.1 > /dev/null 2>&1
843
844        $curlbin -o $TMP/cache.$PARSER.$INPUT.$FROM.1 ${1}
845        URL=`zcat $TMP/cache.$PARSER.$INPUT.$FROM.1 | grep iframe | sed -nr 's/.*src="([^"]+)".*/\1/p'`
846        if [ -z "$URL" ];then
847                URL=`cat $TMP/cache.$PARSER.$INPUT.$FROM.1 | grep iframe | sed -nr 's/.*src="([^"]+)".*/\1/p'`
848        fi
849        if [ -z "$URL" ];then
850                URL=`cat $TMP/cache.$PARSER.$INPUT.$FROM.1 | grep "text/javascript" | grep -v jQuery | sed -nr 's/.*src="([^"]+)".*/\1/p'`
851        fi
852
853#       echo $URL
854        $curlbin "$INPUT" -o $TMP/cache.hoster.$hoster.2
855}
856
857
858directstream()
859{
860        echo "$INPUT"
861#       rm -f /tmp/_last_hoster_* > /dev/null 2>&1
862        echo  "$INPUT" > /tmp/.last_hoster_$hoster.log
863}
864
865youtube_dl()
866{
867#       echo "$BIN $youtubebin $INPUT" > /tmp/.last_hoster_youtube_dl.log
868#       $BIN $CMD/lib/youtube_dl/__main__.py --no-check-certificate --cookies /mnt/network/cookies --user-agent "$USERAGENT" --format mp4 --restrict-filenames --ignore-errors -g "$INPUT" > /tmp/youtube_dl.streamlink.log 2>&1
869#       cat /tmp/youtube_dl.streamlink.log | tail -n1
870        mkdir $TMP > /dev/null 2>&1
871
872        if [ ! -z "$USER" ];then USER="--username $USER";fi
873        if [ ! -z "$PASS" ];then PASS="--password $PASS";fi
874
875        if [ -e /etc/.oebuild ];then
876                echo "$youtubebin $INPUT $USER $PASS" > /tmp/.last_hoster_$TYPE.log
877        else
878                echo "$BIN $youtubebin $INPUT $USER $PASS" > /tmp/.last_hoster_$TYPE.log
879        fi
880        if [ ! -z "$INPUT" ];then
881                if [ -e /etc/.oebuild ];then
882                if [ ! -e /usr/bin/youtube-dl ] && [ "$DISTRO" != "6.3" ];then
883                                opkg update > /dev/null 2>&1
884                                opkg install $(opkg list *python* | grep python- | awk '{ print $1 }' | grep -v "\-src" | grep -v "\-dbg" | grep -v "\-dev" | grep -v "\-test" | grep -v "\-2to3") > /dev/null 2>&1
885                                echo install python-youtube-dl > /dev/null 2>&1
886                                opkg install python-youtube-dl > /dev/null 2>&1
887                        fi
888#                       echo remove cookies
889#                       rm /mnt/network/cookies > /dev/null 2>&1
890                        unset PYTHONHOME
891                        unset LD_LIBRARY_PATH
892
893                        $youtubebin "$INPUT" $USER $PASS > $TMP/$TYPE.$hoster.$FILENAME.streamlist
894            if [ `cat $TMP/$TYPE.$hoster.$FILENAME.streamlist | wc -l` -eq 0 ];then
895                        $youtubebin2 "$INPUT" $USER $PASS > $TMP/$TYPE.$hoster.$FILENAME.streamlist
896            fi
897                else
898                        $BIN $youtubebin "$INPUT" $USER $PASS > $TMP/$TYPE.$hoster.$FILENAME.streamlist
899                fi
900                echo $INPUT >> $TMP/$TYPE.$hoster.$FILENAME.streamlist
901        else
902                echo "errormsg=Error: Youtube DL has Emthy Url from Parser" > $TMP/$TYPE.$hoster.$FILENAME.streamlist
903        fi
904#       cat $TMP/$TYPE.$hoster.$FILENAME.streamlist
905        echo $TMP/$TYPE.$hoster.$FILENAME.streamlist
906}
907
908youtube_dlbg()
909{
910#       echo "$BIN $youtubebinbg $DEST $INPUT" > /tmp/.last_hoster_youtube_dlbg.log
911#       URL=`$BIN $CMD/lib/youtube_dl/__main__.py --no-check-certificate --cookies /mnt/network/cookies --user-agent "$USERAGENT" --format mp4 --restrict-filenames --ignore-errors --output "$1" "$2"`
912#       echo "$URL" >> /tmp/.last_hoster_youtube_dlbg.log
913#       echo $URL
914        mkdir $TMP > /dev/null 2>&1
915        if [ -e /etc/.oebuild ];then
916                if [ ! -e /usr/bin/youtube-dl ] && [ "$DISTRO" != "6.3" ];then
917                        opkg update > /dev/null 2>&1
918                        opkg install $(opkg list *python* | grep python- | awk '{ print $1 }' | grep -v "\-src" | grep -v "\-dbg" | grep -v "\-dev" | grep -v "\-test" | grep -v "\-2to3") > /dev/null 2>&1
919                        echo install python-youtube-dl > /dev/null 2>&1
920                        opkg install python-youtube-dl > /dev/null 2>&1
921                fi
922#               echo remove cookies
923#               rm /mnt/network/cookies > /dev/null 2>&1
924                unset PYTHONHOME
925                unset LD_LIBRARY_PATH
926                echo "$youtubebinbg $DEST $INPUT" > /tmp/.last_hoster_${TYPE}_${CURTIME}.log
927#               $youtubebinbg "$DEST" "$INPUT" >> /tmp/.last_hoster_${TYPE}_${CURTIME}.log
928        URL=$(echo "$INPUT" | tr '|' '\n' | head -n1)
929                echo "$youtubebinbg $DEST $URL" >> /tmp/.last_hoster_${TYPE}_${CURTIME}.log
930                $youtubebinbg "$DEST" "$URL" >> /tmp/.last_hoster_${TYPE}_${CURTIME}.log
931        if [ `cat /tmp/.last_hoster_${TYPE}_${CURTIME}.log | wc -l` -eq 0 ];then
932                        $youtubebinbg2 "$DEST" "$URL" >> /tmp/.last_hoster_${TYPE}_${CURTIME}.log
933        fi
934        else
935                echo "$BIN $youtubebinbg $DEST $INPUT" > /tmp/.last_hoster_${TYPE}_${CURTIME}.log
936#               $BIN $youtubebinbg "$DEST" "$INPUT" >> /tmp/.last_hoster_${TYPE}_${CURTIME}.log
937        URL=$(echo "$INPUT" | tr '|' '\n' | head -n1)
938                echo "$BIN $youtubebinbg $DEST $URL" > /tmp/.last_hoster_${TYPE}_${CURTIME}.log
939                $BIN $youtubebinbg "$DEST" "$URL" >> /tmp/.last_hoster_${TYPE}_${CURTIME}.log
940        fi
941
942        cat /tmp/.last_hoster_${TYPE}_${CURTIME}.log | tail -n1
943#       echo $TMP/$TYPE.$hoster.$FILENAME.streamlist
944}
945
946hlsdl()
947{
948        mkdir $TMP > /dev/null 2>&1
949
950        echo "$HLSBIN $hlsdlbg $DEST $INPUT" > /tmp/.last_hoster_${TYPE}_${CURTIME}.log
951
952        REFERER=$(echo "$INPUT" | sed -nr 's/.*Referer=([^=]+)&.*/\1/p')
953        if [ -z "$REFERER" ];then
954                REFERER=$(echo "$INPUT" | sed -nr 's/.*Referer=([^=]+).*/\1/p')
955        fi
956
957        if [ ! -z "$REFERER" ];then
958                REFERER="Referer: $REFERER"
959        fi
960
961        TMPUSERAGENT=$(echo "$INPUT" | sed -nr 's/.*User-Agent=([^=]+)&.*/\1/p')
962        if [ -z "$TMPUSERAGENT" ];then
963                TMPUSERAGENT=$(echo "$INPUT" | sed -nr 's/.*User-Agent=([^=]+).*/\1/p')
964        fi
965        if [ ! -z "$TMPUSERAGENT" ];then
966                USERAGENT=$TMPUSERAGENT
967        fi
968
969        URL=$(echo "$INPUT" | tr '|' '\n' | head -n1)
970
971        if [ -e /etc/.oebuild ];then
972                if [ ! -e /usr/bin/hlsdl ] && [ "$DISTRO" != "6.3" ];then
973                        opkg update > /dev/null 2>&1
974                        echo install hlsdl > /dev/null 2>&1
975                        opkg install hlsdl > /dev/null 2>&1
976                fi
977        cp /usr/bin/hlsdl $HLSBIN
978    fi
979
980        echo $HLSBIN "$URL" -v -C /mnt/network/cookies -b -f -u "$USERAGENT" -h "$REFERER" -o "$DEST" >> /tmp/.last_hoster_${TYPE}_${CURTIME}.log
981        $HLSBIN "$URL" -v -C /mnt/network/cookies -b -f -u "$USERAGENT" -h "$REFERER" -o "$DEST" >> /tmp/.last_hoster_${TYPE}_${CURTIME}.log
982#       $HLSBIN "$URL" -v -u "$USERA" -h "$REFERER" -o "$DEST" >> /tmp/.last_hlsdl_hoster_${TYPE}_${CURTIME}.log
983}
984
985curldl()
986{
987        mkdir $TMP > /dev/null 2>&1
988
989        echo "$CURLBIN $INPUT -o $DEST " > /tmp/.last_hoster_$TYPE.log
990        $CURLBIN "$INPUT" -o "$DEST"
991}
992
993if [ "$TYPE" == "get" ];then
994        echo  "$INPUT" > /tmp/.last_hoster_$TYPE_$hoster.log
995        case $hoster in
996                apl*) apl3 $INPUT;;
997                ecostream) ecostream $INPUT;;
998                giga) giga $INPUT;;
999                nosvideo) nosvideo $INPUT;;
1000                allmyvideos) allmyvideos $INPUT;;
1001                flashx) flashx $INPUT;;
1002                openload|oload) openload $INPUT;;
1003                briskfile) briskfile $INPUT;;
1004                videoweed|bitvid) videoweed $INPUT;;
1005                vodlocker) vodlocker $INPUT;;
1006                youwatch|chouhaa|ay8ou8ohth) youwatch $INPUT;;
1007                thevideo|tvad|vev) thevideo $INPUT;;
1008                movshare|wholecloud|vidgg) movshare $INPUT;;
1009                vidto) vidto $INPUT;;
1010                vidup) vidup $INPUT;;
1011                vidzi) vidzi $INPUT;;
1012                vivo) vivo $INPUT;;
1013                goldesel|movie4k|movie4kto|kinox|kinos|kinoz|kinoxto|foxx) cloudflare $INPUT;;
1014                streamcloud) streamcloud $INPUT;;       
1015                nowvideo) nowvideo $INPUT;;
1016                divxstage|cloudtime) divxstage $INPUT;;
1017                novamov|auroravid) novamov $INPUT;;
1018                xvidstage) xvidstage $INPUT;;
1019                waaw|netu|hqq) waaw $INPUT;;
1020                vidcloud|loadvid) vidcloud $INPUT;;
1021                streamango|streamcherry) streamango $INPUT;;
1022                vidlox) vidlox $INPUT;;
1023                redirector|googlevideo|vodcloud|google|skyfall|s4) directstream "$INPUT";;
1024                aliez|aplayer1) aliez $INPUT;;
1025                sport7) sport7 $INPUT;;
1026                sportstream365) sportstream365 $INPUT;;
1027                sportsonline) sportsonline $INPUT;;
1028                assia) assia $INPUT;;
1029                cricfree) cricfree $INPUT;;
1030                adca) broadcast $INPUT;;
1031                streamz) streamz $INPUT;;
1032                mixdrop) mixdrop $INPUT;;
1033                vshare) vshare $INPUT;;
1034                streamcrypt) hoster2=$(streamcrypt $INPUT);;
1035                voe) voesx $INPUT;;
1036                streamtape|strtape|streamta|strcloud) streamtape $INPUT;;
1037                upstream) upstream $INPUT;;
1038                evoload) evoload $INPUT;;
1039                abcvideo) abcvideo $INPUT;;
1040                dood|doodstream) doodstream $INPUT;;
1041        popofthestream) popofthestream $INPUT;;
1042#               *) all $INPUT;;
1043        esac
1044if [ ! -z "$hoster2" ];then
1045        echo  "$INPUT" > /tmp/.last_hoster_$TYPE_$hoster2.log
1046        case $hoster2 in
1047                apl*) apl3 $INPUT;;
1048                ecostream) ecostream $INPUT;;
1049                giga) giga $INPUT;;
1050                nosvideo) nosvideo $INPUT;;
1051                allmyvideos) allmyvideos $INPUT;;
1052                flashx) flashx $INPUT;;
1053                openload|oload) openload $INPUT;;
1054                briskfile) briskfile $INPUT;;
1055                videoweed|bitvid) videoweed $INPUT;;
1056                vodlocker) vodlocker $INPUT;;
1057                youwatch|chouhaa|ay8ou8ohth) youwatch $INPUT;;
1058                thevideo|tvad|vev) thevideo $INPUT;;
1059                movshare|wholecloud|vidgg) movshare $INPUT;;
1060                vidto) vidto $INPUT;;
1061                vidup) vidup $INPUT;;
1062                vidzi) vidzi $INPUT;;
1063                vivo) vivo $INPUT;;
1064                goldesel|movie4k|movie4kto|kinox|kinos|kinoz|kinoxto|foxx) cloudflare $INPUT;;
1065                streamcloud) streamcloud $INPUT;;       
1066                nowvideo) nowvideo $INPUT;;
1067                divxstage|cloudtime) divxstage $INPUT;;
1068                novamov|auroravid) novamov $INPUT;;
1069                xvidstage) xvidstage $INPUT;;
1070                waaw|netu|hqq) waaw $INPUT;;
1071                vidcloud|loadvid) vidcloud $INPUT;;
1072                streamango|streamcherry) streamango $INPUT;;
1073                vidlox) vidlox $INPUT;;
1074                redirector|googlevideo|vodcloud|google|skyfall|s4) directstream "$INPUT";;
1075                aliez|aplayer1) aliez $INPUT;;
1076                sport7) sport7 $INPUT;;
1077                sportstream365) sportstream365 $INPUT;;
1078                sportsonline) sportsonline $INPUT;;
1079                assia) assia $INPUT;;
1080                cricfree) cricfree $INPUT;;
1081                adca) broadcast $INPUT;;
1082                streamz) streamz $INPUT;;
1083                mixdrop) mixdrop $INPUT;;
1084                vshare) vshare $INPUT;;
1085                streamcrypt) streamcrypt $INPUT;;
1086                voe) voesx $INPUT;;
1087                streamtape|strtape|streamta|strcloud) streamtape $INPUT;;
1088                upstream) upstream $INPUT;;
1089                evoload) evoload $INPUT;;
1090                abcvideo) abcvideo $INPUT;;
1091                dood|doodstream) doodstream $INPUT;;
1092        popofthestream) popofthestream $INPUT;;
1093#               *) all $INPUT;;
1094        esac
1095fi
1096fi
1097
1098if [ "$TYPE" == "hoster" ];then
1099        echo  "$INPUT" > /tmp/.last_hoster_$TYPE_$hoster.log
1100        case $hoster in
1101                kinox|kinos|kinoz|kinoxto) kinox $INPUT;;
1102        esac
1103fi
1104
1105if [ "$TYPE" == "youtube_dl" ];then
1106        echo  "$INPUT" > /tmp/.last_hoster_$TYPE_$hoster.log
1107        case $hoster in
1108                *) youtube_dl $INPUT $USER $PASS;;
1109        esac
1110fi
1111
1112if [ "$TYPE" == "youtube_dlbg" ];then
1113        echo  "$INPUT" > /tmp/.last_hoster_$TYPE_$hoster.log
1114        case $hoster in
1115                *) youtube_dlbg $DEST $INPUT;;
1116        esac
1117fi
1118
1119if [ "$TYPE" == "hlsdl" ];then
1120        echo  "$INPUT" > /tmp/.last_hoster_$TYPE_$hoster.log
1121        case $hoster in
1122                *) hlsdl $INPUT;;
1123        esac
1124fi
1125
1126if [ "$TYPE" == "curldl" ];then
1127        echo  "$INPUT" > /tmp/.last_hoster_$TYPE_$hoster.log
1128        case $hoster in
1129                *) curldl $INPUT;;
1130        esac
1131fi
1132
1133if [ "$TYPE" == "cloudflare" ];then
1134        echo  "$INPUT" > /tmp/.last_hoster_$TYPE_$hoster.log
1135        case $hoster in
1136                *) cloudflare $INPUT;;
1137        esac
1138fi
1139
1140curlcmd()
1141{
1142        $curlbin "$INPUT" "$2" "$3"
1143}
1144
1145if [ "$TYPE" == "curl" ];then
1146        echo  "$INPUT" > /tmp/.last_hoster_$TYPE_$hoster.log
1147        case $hoster in
1148                *) curlcmd "$INPUT" "$3" "$4";;
1149        esac
1150fi
1151
1152
Note: See TracBrowser for help on using the repository browser.