up
This commit is contained in:
Liu committed 2025-03-27 01:05:28 +08:00
1 parent 5a0d09c16f
commit b173e0a0d5
42 files changed
+30679 -17792

No files matched your search

+382 -93
View File
@@ -1,51 +1,290 @@
央视,#genre# 央视,#genre#
CCTV1,http://116.117.105.236:8096/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路193』 CCTV1,http://home.kuaidi521.com:35455/gaoma/cctv1.m3u8
CCTV1,http://116.117.105.71:8096/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路194』 CCTV1,http://nas.suntao.online:35455/gaoma/cctv1.m3u8
CCTV1,http://116.117.105.96:8096/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路195』 CCTV1,http://58.243.224.244:9901/tsfile/live/1031_1.m3u8?key=txiptv&playlive=0&authid=0
CCTV2,http://116.117.105.236:8096/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路183』 CCTV1,http://119.123.178.255:8086/hls/2/index.m3u8
CCTV2,http://116.117.105.71:8096/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路184』 CCTV1,http://xiaoya.crccxw.top:35455/gaoma/cctv1.m3u8
CCTV2,http://116.117.105.96:8096/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路185』 CCTV1,http://58.220.219.14:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV3,http://116.117.105.236:8096/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路165』 CCTV1,http://175.31.21.146:4480/hls/1/index.m3u8
CCTV3,http://116.117.105.71:8096/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路166』 CCTV1,http://183.215.134.239:19901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV3,http://116.117.105.96:8096/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路167』 CCTV1,http://1752e145z8.vicp.fun:35455/gaoma/cctv1.m3u8
CCTV4,http://116.117.105.236:8096/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路190』 CCTV1,http://1.itv.nctv.top:7777/gaoma/cctv1.m3u8
CCTV4,http://116.117.105.71:8096/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路191』 CCTV1,http://tv.20191209.xyz:37377/migu/608807420.m3u8?migutoken=004b385f879c68b1898b3b528c53ce2cc69a05fc6ccef397d5ff725950f98cc37983a6c0565ab535a964de0b80663b3a394fd8a43c51d0547d2e232162525de45bdb07292d1fc1944aea97f0
CCTV4,http://116.117.105.96:8096/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路192』 CCTV1,http://58.220.211.90:352/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid$LR•IPV4『线路274』
CCTV5,http://116.117.105.236:8096/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路205』 CCTV1,http://58.220.211.90:352/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路275』
CCTV5,http://116.117.105.71:8096/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路206』 CCTV1,http://36.105.100.208:35455/gaoma/cctv1.m3u8
CCTV5,http://116.117.105.96:8096/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路207』 CCTV1,http://3501776.xyz:35455/gaoma/cctv1.m3u8
CCTV6,http://116.117.105.236:8096/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路167』 CCTV1,http://222.134.245.16:9901/tsfile/live/0001_1.m3u8
CCTV6,http://116.117.105.71:8096/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路168』 CCTV1,http://112.81.218.254:35455/gaoma/cctv1.m3u8
CCTV6,http://116.117.105.96:8096/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路169』 CCTV1,http://183.184.228.183:9003//hls/1/index.m3u8
CCTV7,http://116.117.105.236:8096/tsfile/live/0007_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路174』 CCTV1,http://39.77.34.83:35455/gaoma/cctv1.m3u8
CCTV7,http://116.117.105.71:8096/tsfile/live/0007_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路175』 CCTV1,http://113.140.12.230:8888/newlive/live/hls/2/live.m3u8
CCTV7,http://116.117.105.96:8096/tsfile/live/0007_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路176』 CCTV1,http://222.219.183.103:8089/hls/1/index.m3u8
CCTV8,http://116.117.105.236:8096/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路157』 CCTV1,http://58.210.168.86:10800/newlive/live/hls/1/live.m3u8
CCTV8,http://116.117.105.71:8096/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路158』 CCTV1,http://zjzcf.synology.me:35455/gaoma/cctv1.m3u8
CCTV8,http://116.117.105.96:8096/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路159』 CCTV2,http://222.169.85.8:9901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路251』
CCTV9,http://116.117.105.236:8096/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路168』 CCTV2,http://nas.suntao.online:35455/gaoma/cctv2.m3u8
CCTV9,http://116.117.105.71:8096/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路169』 CCTV2,http://huashetou.fun:35455/gaoma/cctv2.m3u8
CCTV9,http://116.117.105.96:8096/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路170』 CCTV2,http://58.243.224.244:9901/tsfile/live/1000_1.m3u8?key=txiptv&playlive=0&authid=0
CCTV10,http://110.7.131.129:8096/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路172』 CCTV2,http://yc.myds.me:35455/gaoma/cctv2.m3u8
CCTV10,http://116.117.105.236:8096/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路177』 CCTV2,http://39.164.160.249:9901/tsfile/live/0002_1.m3u8
CCTV10,http://116.117.105.71:8096/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路178』 CCTV2,http://175.31.21.146:4480/hls/2/index.m3u8
CCTV10,http://116.117.105.96:8096/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路179』 CCTV2,http://183.215.134.239:19901/tsfile/live/0002_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV11,http://110.7.131.129:8096/tsfile/live/0011_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路160』 CCTV2,http://116.128.243.121:85/tsfile/live/0002_1.m3u8?key=txiptv&playlive=0&authid=0
CCTV11,http://116.117.105.236:8096/tsfile/live/0011_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路165』 CCTV2,http://1752e145z8.vicp.fun:35455/gaoma/cctv2.m3u8
CCTV11,http://116.117.105.71:8096/tsfile/live/0011_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路166』 CCTV2,http://1.itv.nctv.top:7777/gaoma/cctv2.m3u8
CCTV11,http://116.117.105.96:8096/tsfile/live/0011_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路167』 CCTV2,http://tv.20191209.xyz:37377/migu/631780532.m3u8?migutoken=862217ff2cffee0a741039e700509cb8f9a8b1920fe6cee55afb89ef1551eba3ecc744e93cf8e52cd8b4bf1a27c7a074745b640058072bfa4ad145917cdeb959261218d7b78174684a74ae78
CCTV12,http://110.7.131.129:8096/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路181』 CCTV2,http://36.105.100.208:35455/gaoma/cctv2.m3u8
CCTV12,http://116.117.105.236:8096/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路186』 CCTV2,http://3501776.xyz:35455/gaoma/cctv2.m3u8
CCTV12,http://116.117.105.71:8096/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路187』 CCTV2,http://222.134.245.16:9901/tsfile/live/0002_1.m3u8
CCTV12,http://116.117.105.96:8096/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路188』 CCTV2,http://183.184.228.183:9003//hls/2/index.m3u8
CCTV13,http://110.7.131.129:8096/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路170』 CCTV2,http://39.77.34.83:35455/gaoma/cctv2.m3u8
CCTV13,http://116.117.105.236:8096/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路175』 CCTV2,http://113.140.12.230:8888/newlive/live/hls/3/live.m3u8
CCTV13,http://116.117.105.71:8096/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路176』 CCTV2,http://60.223.224.176:8888/newlive/live/hls/3/live.m3u8
CCTV13,http://116.117.105.96:8096/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路177』 CCTV2,http://zjzcf.synology.me:35455/gaoma/cctv2.m3u8
CCTV14,http://110.7.131.129:8096/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路177』 CCTV3,http://222.134.19.31:352/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路247』
CCTV14,http://116.117.105.236:8096/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路182』 CCTV3,http://1.24.39.180:9003/hls/3/index.m3u8
CCTV14,http://116.117.105.71:8096/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路183』 CCTV3,http://124.93.18.238:9003//hls/3/index.m3u8
CCTV14,http://116.117.105.96:8096/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路184』 CCTV3,http://nas.suntao.online:35455/gaoma/cctv3.m3u8
CCTV3,http://183.215.134.239:19901/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV3,http://yc.myds.me:35455/gaoma/cctv3.m3u8
CCTV3,http://222.134.19.31:352/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV3,http://60.223.224.176:8888/newlive/live/hls/4/live.m3u8
CCTV3,http://113.140.12.230:8888/newlive/live/hls/4/live.m3u8
CCTV3,http://1752e145z8.vicp.fun:35455/gaoma/cctv3.m3u8
CCTV3,http://1.itv.nctv.top:7777/gaoma/cctv3.m3u8
CCTV3,http://tv.20191209.xyz:37377/migu/624878271.m3u8?migutoken=6bf1444e1fd674ffdba5c57e719cecb87358abd9dfd0059ccfaceb24503ca14f393ec4b44fc2a4b2b5eded13d1f30a2052d85600414a1274345fcd95bd9848cf13bffeef1945f996928f0095
CCTV3,http://221.2.148.205:8154/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路34』
CCTV3,http://36.105.100.208:35455/gaoma/cctv3.m3u8
CCTV3,http://39.77.34.83:35455/gaoma/cctv3.m3u8
CCTV3,http://222.134.245.16:9901/tsfile/live/0003_1.m3u8
CCTV3,http://222.169.85.8:9901/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV3,http://222.169.85.8:9901/tsfile/live/0003_1.m3u8
CCTV3,http://112.46.85.60:8009/hls/3/index.m3u8
CCTV3,http://3501776.xyz:35455/gaoma/cctv3.m3u8
CCTV3,http://183.184.228.183:9003//hls/3/index.m3u8
CCTV3,http://218.29.168.146:352/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV3,http://58.220.219.14:9901/tsfile/live/0003_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV3,http://zjzcf.synology.me:35455/gaoma/cctv3.m3u8
CCTV4,http://tv.20191209.xyz:37377/migu/608807419.m3u8?migutoken=f623911f12100eda47f646cc2a14f2c4563e5d65f3e99dd30284493de9b5ff8389ee51ba62d51bb0a92235ccb1109e54ab6b1b5fe401fe4f60d18b1ccc51f92aa29b70fba7a400ff9058fdf8
CCTV4,http://124.93.18.238:9003//hls/4/index.m3u8
CCTV4,http://58.243.224.244:9901/tsfile/live/1002_1.m3u8?key=txiptv&playlive=0&authid=0
CCTV4,http://nas.suntao.online:35455/gaoma/cctv4.m3u8
CCTV4,http://tv.20191209.xyz:37377/migu/608807416.m3u8?migutoken=3e58d508ab4bf069dc535fdfc6330dfccfc52c3bb391b5b5602cff12f0acbb883fa9280c7422a00e84eba6fd1e2ddb27dc888d6e63e914595ce9fb917d9462307140d2558dac1fb322c2a85b
CCTV4,http://huashetou.fun:35455/gaoma/cctv4.m3u8
CCTV4,http://1752e145z8.vicp.fun:35455/gaoma/cctv4.m3u8
CCTV4,http://1.itv.nctv.top:7777/gaoma/cctv4.m3u8
CCTV4,http://1.itv.nctv.top:7777/gaoma/cctv4k_10m.m3u8
CCTV4,http://183.66.15.146:60901/tsfile/live/0004_1.m3u8?key=txiptv$LR•IPV4『线路190』
CCTV4,http://222.134.245.16:9901/tsfile/live/0004_1.m3u8
CCTV4,http://183.184.228.183:9003//hls/4/index.m3u8
CCTV4,http://39.77.34.83:35455/gaoma/cctv4.m3u8
CCTV4,http://113.140.12.230:8888/newlive/live/hls/5/live.m3u8
CCTV4,http://60.223.224.176:8888/newlive/live/hls/5/live.m3u8?
CCTV4,http://222.219.183.103:8089/hls/4/index.m3u8
CCTV4,http://36.105.100.208:35455/gaoma/cctv4.m3u8
CCTV4,http://zjzcf.synology.me:35455/gaoma/cctv4.m3u8
CCTV5,http://1.24.39.180:9003/hls/5/index.m3u8
CCTV5,http://42.225.117.174:11199/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV5,http://nas.suntao.online:35455/gaoma/cctv5.m3u8
CCTV5,http://112.81.218.254:35455/gaoma/cctv5.m3u8
CCTV5,http://222.134.19.31:352/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV5,http://huashetou.fun:35455/gaoma/cctv5.m3u8
CCTV5,http://60.223.224.176:8888/newlive/live/hls/6/live.m3u8
CCTV5,http://113.140.12.230:8888/newlive/live/hls/6/live.m3u8
CCTV5,http://1.itv.nctv.top:7777/gaoma/cctv5.m3u8
CCTV5,http://tv.20191209.xyz:37377/migu/641886683.m3u8?migutoken=81d12cec2983a402e950068a320720875c9b84d86ead50b7ee5cc3d407f55f3d85a8e298762710bc211027e047162ea27025e20dda4ac4921a6c1d8b950dbe297e15174889d5122c0e3462d0
CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路177』
CCTV5,http://61.133.10.250:352/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路269』
CCTV5,http://36.105.100.208:35455/gaoma/cctv5.m3u8
CCTV5,http://home.kuaidi521.com:35455/gaoma/cctv5.m3u8
CCTV5,http://222.134.245.16:9901/tsfile/live/0005_1.m3u8
CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV5,http://124.93.18.238:9003//hls/5/index.m3u8
CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8
CCTV5,http://183.184.228.183:9003//hls/5/index.m3u8
CCTV5,http://39.77.34.83:35455/gaoma/cctv5.m3u8
CCTV5,http://xiaoya.crccxw.top:35455/gaoma/cctv5.m3u8
CCTV5,http://zjzcf.synology.me:35455/gaoma/cctv5.m3u8
CCTV5+,http://cssbyd.imwork.net:8082/hls/6/index.m3u8
CCTV5+,http://nas.suntao.online:35455/gaoma/cctv5p.m3u8
CCTV5+,http://home.kuaidi521.com:35455/gaoma/cctv5p.m3u8
CCTV5+,http://183.215.134.239:19901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV5+,http://xiaoya.crccxw.top:35455/gaoma/cctv5p.m3u8
CCTV5+,http://1.itv.nctv.top:7777/gaoma/cctv5p.m3u8
CCTV5+,http://1752e145z8.vicp.fun:35455/gaoma/cctv5p.m3u8
CCTV5+,http://112.81.218.254:35455/gaoma/cctv5p.m3u8
CCTV5+,http://222.219.183.103:8089/hls/19/index.m3u8
CCTV5+,http://183.184.228.183:9003//hls/6/index.m3u8
CCTV5+,http://182.37.169.94:352/tsfile/live/0016_1.m3u8
CCTV5+,http://zjzcf.synology.me:35455/gaoma/cctv5p.m3u8
CCTV6,http://1.24.39.180:9003/hls/6/index.m3u8
CCTV6,http://222.134.19.31:352/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV6,http://39.170.52.236:808/hls/6/index.m3u8
CCTV6,http://221.2.148.205:8154/tsfile/live/0006_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路35』
CCTV6,http://113.140.12.230:8888/newlive/live/hls/7/live.m3u8
CCTV6,http://222.169.85.8:9901/tsfile/live/0006_1.m3u8?key=txiptv
CCTV6,http://zzssw01.55555.io:9901/tsfile/live/0006_1.m3u8
CCTV6,http://124.93.18.238:9003//hls/6/index.m3u8
CCTV6,http://101.19.84.8:9901/tsfile/live/0006_1.m3u8
CCTV6,http://183.184.228.183:9003//hls/7/index.m3u8
CCTV7,http://8.138.7.223/tv/cctv7.m3u8
CCTV7,http://nas.suntao.online:35455/gaoma/cctv7.m3u8
CCTV7,http://60.223.224.176:8888/newlive/live/hls/9/live.m3u8
CCTV7,https://live.junhao.mil.cn/rmt9502/3e6e7c5477314ec38f5e58e2a5c70024.m3u8?txSecret=57978fafb9c19880afa5c8687e8241d8&txTime=7A42BAFF
CCTV7,http://live.junhao.mil.cn/rmt9502/3e6e7c5477314ec38f5e58e2a5c70024.m3u8?txSecret=57978fafb9c19880afa5c8687e8241d8&txTime=7A42BAFF
CCTV7,http://1752e145z8.vicp.fun:35455/gaoma/cctv7.m3u8
CCTV7,http://huashetou.fun:35455/gaoma/cctv7.m3u8
CCTV7,http://yc.myds.me:35455/gaoma/cctv7.m3u8
CCTV7,http://xiaoya.crccxw.top:35455/gaoma/cctv7.m3u8
CCTV7,http://182.37.169.94:352/tsfile/live/0007_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV7,http://1.itv.nctv.top:7777/gaoma/cctv7.m3u8
CCTV7,http://36.105.100.208:35455/gaoma/cctv7.m3u8
CCTV7,http://home.kuaidi521.com:35455/gaoma/cctv7.m3u8
CCTV7,http://101.19.84.8:9901/tsfile/live/0007_1.m3u8
CCTV7,http://183.184.228.183:9003//hls/8/index.m3u8
CCTV7,http://39.77.34.83:35455/gaoma/cctv7.m3u8
CCTV7,http://112.81.218.254:35455/gaoma/cctv7.m3u8
CCTV7,http://124.93.18.238:9003//hls/7/index.m3u8
CCTV7,http://222.219.183.103:8089/hls/7/index.m3u8
CCTV8,http://tv.20191209.xyz:37377/migu/624878356.m3u8?migutoken=9d347588ab808559db972d3c94b0d970ec130153e4a6dde98c4466f1d3f85f58de23d16994f2f0ed903aa6727a7282cb17103e67b69c8e3f31d253bb78039a4df119e2cfeba6916d123a8003
CCTV8,http://1.24.39.180:9003/hls/8/index.m3u8
CCTV8,http://112.81.218.254:35455/gaoma/cctv8.m3u8
CCTV8,http://nas.suntao.online:35455/gaoma/cctv8.m3u8
CCTV8,http://nas.suntao.online:35455/gaoma/cctv8k_36m.m3u8
CCTV8,http://183.215.134.239:19901/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV8,http://yc.myds.me:35455/gaoma/cctv8.m3u8
CCTV8,http://114.105.98.95:37377/migu/624878356.m3u8?migutoken=9d347588ab808559db972d3c94b0d970ec130153e4a6dde98c4466f1d3f85f58de23d16994f2f0ed903aa6727a7282cb17103e67b69c8e3f31d253bb78039a4df119e2cfeba6916d123a8003
CCTV8,http://222.134.19.31:352/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV8,http://1.itv.nctv.top:7777/gaoma/cctv8.m3u8
CCTV8,http://1.itv.nctv.top:7777/gaoma/cctv8k_36m.m3u8
CCTV8,http://3501776.xyz:35455/gaoma/cctv8.m3u8
CCTV8,http://home.kuaidi521.com:35455/gaoma/cctv8.m3u8
CCTV8,http://112.46.85.60:8009/hls/8/index.m3u8
CCTV8,http://124.93.18.238:9003//hls/8/index.m3u8
CCTV8,http://101.19.84.8:9901/tsfile/live/0008_1.m3u8
CCTV8,http://183.184.228.183:9003//hls/9/index.m3u8
CCTV8,http://113.140.12.230:8888/newlive/live/hls/9/live.m3u8
CCTV8,http://huashetou.fun:35455/gaoma/cctv8k_36m.m3u8
CCTV8,http://xiaoya.crccxw.top:35455/gaoma/cctv8.m3u8
CCTV8,http://60.223.224.176:8888/newlive/live/hls/10/live.m3u8?
CCTV8,http://221.2.148.205:8154/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV8,http://61.133.10.250:352/tsfile/live/0008_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV8,http://113.140.86.162:8009/hls/8/index.m3u8
CCTV8,http://zjzcf.synology.me:35455/gaoma/cctv8.m3u8
CCTV9,http://112.81.218.254:35455/gaoma/cctv9.m3u8
CCTV9,http://huashetou.fun:35455/gaoma/cctv9.m3u8
CCTV9,http://42.225.117.174:11199/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV9,http://180.213.174.225:9901/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV9,http://1.itv.nctv.top:7777/gaoma/cctv9.m3u8
CCTV9,http://3501776.xyz:35455/gaoma/cctv9.m3u8
CCTV9,http://xiaoya.crccxw.top:35455/gaoma/cctv9.m3u8
CCTV9,http://nas.suntao.online:35455/gaoma/cctv9.m3u8
CCTV9,http://home.kuaidi521.com:35455/gaoma/cctv9.m3u8
CCTV9,http://183.184.228.183:9003//hls/10/index.m3u8
CCTV9,http://58.243.224.244:9901/tsfile/live/1007_1.m3u8?key=txiptv&playlive=0&authid=0
CCTV9,http://60.223.224.176:8888/newlive/live/hls/11/live.m3u8?
CCTV9,http://504099760.qicp.vip:9901/tsfile/live/0009_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV9,http://222.219.183.103:8089/hls/9/index.m3u8
CCTV9,http://zjzcf.synology.me:35455/gaoma/cctv9.m3u8
CCTV10,http://tv.20191209.xyz:37377/migu/624878405.m3u8?migutoken=06cf776d6a6cbe5cb707174dfad937c2164030bf7ce5f589493870891966f9cdaa5f56bad6e7874d683d5b1e3d9a6e59d0f7c78276d5ec47d979ae42b67833e261a2dda0118f3edcabd6a85b
CCTV10,http://nas.suntao.online:35455/gaoma/cctv10.m3u8
CCTV10,http://1752e145z8.vicp.fun:35455/gaoma/cctv10.m3u8
CCTV10,http://42.225.117.174:11199/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV10,http://112.81.218.254:35455/gaoma/cctv10.m3u8
CCTV10,http://39.164.160.249:9901/tsfile/live/0010_1.m3u8
CCTV10,http://huashetou.fun:35455/gaoma/cctv10.m3u8
CCTV10,http://36.105.100.208:35455/gaoma/cctv10.m3u8
CCTV10,http://3501776.xyz:35455/gaoma/cctv10.m3u8
CCTV10,http://xiaoya.crccxw.top:35455/gaoma/cctv10.m3u8
CCTV10,http://1.24.39.180:9003/hls/10/index.m3u8
CCTV10,http://113.140.12.230:8888/newlive/live/hls/11/live.m3u8
CCTV10,http://222.169.85.8:9901/tsfile/live/0010_1.m3u8
CCTV10,http://222.219.183.103:8089/hls/10/index.m3u8
CCTV10,http://183.184.228.183:9003//hls/11/index.m3u8
CCTV10,http://39.77.34.83:35455/gaoma/cctv10.m3u8
CCTV10,http://60.223.224.176:8888/newlive/live/hls/12/live.m3u8
CCTV10,http://182.37.169.94:352/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV10,http://180.213.174.225:9901/tsfile/live/0010_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV11,http://tv.20191209.xyz:37377/migu/667987558.m3u8?migutoken=d3962834d5d359e6f7f25a8880b73dac381a999ef87ba6b7f0f985bb5308a73061bbf5a9abdf873debb3b83b31eb7eff72f410c853c86f404b3f3ef269aeb631982e338f1400adcaf902fff7
CCTV11,http://nas.suntao.online:35455/gaoma/cctv11.m3u8
CCTV11,http://112.81.218.254:35455/gaoma/cctv11.m3u8
CCTV11,http://huashetou.fun:35455/gaoma/cctv11.m3u8
CCTV11,http://1.itv.nctv.top:7777/gaoma/cctv11.m3u8
CCTV11,http://36.105.100.208:35455/gaoma/cctv11.m3u8
CCTV11,http://yc.myds.me:35455/gaoma/cctv11.m3u8
CCTV11,http://39.164.160.249:9901/tsfile/live/0011_1.m3u8
CCTV11,http://home.kuaidi521.com:35455/gaoma/cctv11.m3u8
CCTV12,http://nas.suntao.online:35455/gaoma/cctv12.m3u8
CCTV12,http://112.81.218.254:35455/gaoma/cctv12.m3u8
CCTV12,http://home.kuaidi521.com:35455/gaoma/cctv12.m3u8
CCTV12,http://39.164.160.249:9901/tsfile/live/0012_1.m3u8
CCTV12,http://36.105.100.208:35455/gaoma/cctv12.m3u8
CCTV12,http://xiaoya.crccxw.top:35455/gaoma/cctv12.m3u8
CCTV12,http://124.93.18.238:9003//hls/12/index.m3u8
CCTV12,http://huashetou.fun:35455/gaoma/cctv12.m3u8
CCTV12,http://183.184.228.183:9003//hls/13/index.m3u8
CCTV12,http://39.77.34.83:35455/gaoma/cctv12.m3u8
CCTV13,http://tv.20191209.xyz:37377/migu/608807423.m3u8?migutoken=948b8b51df7e776bcf238bb9088879a2b71a25a424b0d80d5e71375315cda109c5aab5c79693c4324d45ad012e70208234f659abbe606a595a03d29e06ce931ed56f129fbc95a505ab84f72c
CCTV13,http://61.163.181.78:9901/tsfile/live/0013_1.m3u8
CCTV13,https://event.pull.hebtv.com/jishi/cp1.m3u8
CCTV13,http://ali-m-l.cztv.com/channels/lantian/channel21/1080p.m3u8
CCTV13,http://nas.suntao.online:35455/gaoma/cctv13.m3u8
CCTV13,http://183.215.134.239:19901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV13,http://1.itv.nctv.top:7777/gaoma/cctv13.m3u8
CCTV13,http://36.105.100.208:35455/gaoma/cctv13.m3u8
CCTV13,http://39.164.160.249:9901/tsfile/live/0013_1.m3u8
CCTV13,http://huashetou.fun:35455/gaoma/cctv13.m3u8
CCTV13,http://112.81.218.254:35455/gaoma/cctv13.m3u8
CCTV13,http://yc.myds.me:35455/gaoma/cctv13.m3u8
CCTV13,http://183.184.228.183:9003//hls/14/index.m3u8
CCTV14,http://tv.20191209.xyz:37377/migu/624878440.m3u8?migutoken=d84c14c00275d7fa951be2b0a959b0c1af15c62e7f86732fa2306e3a92f447f5b841e0cc26645dc89e70e970812e2c07c2fe24ae5c02b854544ed8c99d6c6d668a402d58cf351e77b5311afd
CCTV14,http://nas.suntao.online:35455/gaoma/cctv14.m3u8
CCTV14,http://112.81.218.254:35455/gaoma/cctv14.m3u8
CCTV14,https://event.pull.hebtv.com/jishi/cp2.m3u8
CCTV14,http://42.225.117.174:11199/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV14,http://3501776.xyz:35455/gaoma/cctv14.m3u8
CCTV14,http://39.164.160.249:9901/tsfile/live/0014_1.m3u8
CCTV14,http://huashetou.fun:35455/gaoma/cctv14.m3u8
CCTV14,http://1.itv.nctv.top:7777/gaoma/cctv14.m3u8
CCTV14,http://58.17.48.228:808/hls/14/index.m3u8
CCTV14,http://222.173.108.238:352/tsfile/live/0014_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV14,http://36.105.100.208:35455/gaoma/cctv14.m3u8
CCTV14,http://39.77.34.83:35455/gaoma/cctv14.m3u8
CCTV14,http://124.93.18.238:9003//hls/14/index.m3u8
CCTV14,http://183.184.228.183:9003//hls/15/index.m3u8
CCTV15,http://tv.20191209.xyz:37377/migu/673168223.m3u8?migutoken=91bfd27ec54e6b68df329e3a36e211ea78e34558edc20ae3d76e0cbf89e6012d4e33c760dd200a4a41b2587c50dee210ca66da4ff8be48c4a97a2c7ab22d824ea440cc9c06961aa846be65a0
CCTV15,http://nas.suntao.online:35455/gaoma/cctv15.m3u8
CCTV15,http://39.164.160.249:9901/tsfile/live/0015_1.m3u8
CCTV15,http://1.itv.nctv.top:7777/gaoma/cctv15.m3u8
CCTV15,http://home.kuaidi521.com:35455/gaoma/cctv15.m3u8
CCTV15,http://yc.myds.me:35455/gaoma/cctv15.m3u8
CCTV15,http://124.93.18.238:9003//hls/15/index.m3u8
CCTV16,http://nas.suntao.online:35455/gaoma/cctv16.m3u8
CCTV16,http://1.24.39.180:9003/hls/60/index.m3u8
CCTV16,http://124.93.18.238:9003//hls/16/index.m3u8
CCTV16,http://xiaoya.crccxw.top:35455/gaoma/cctv16.m3u8
CCTV16,http://1.itv.nctv.top:7777/gaoma/cctv16.m3u8
CCTV16,http://36.105.100.208:35455/gaoma/cctv16.m3u8
CCTV16,http://112.81.218.254:35455/gaoma/cctv16.m3u8
CCTV16,http://huashetou.fun:35455/gaoma/cctv16.m3u8
CCTV16,http://39.77.34.83:35455/gaoma/cctv16.m3u8
CCTV16,http://yc.myds.me:35455/gaoma/cctv16.m3u8
CCTV16,http://183.184.228.183:9003//hls/17/index.m3u8
CCTV17,http://tv.20191209.xyz:37377/migu/673168256.m3u8?migutoken=eb3fbda758006d66837b5b6ef1b7ab6847a99f05f6b3303861d81e6e1335349499a40c8479d9a801327519db10547f9870398da6796159db51812e236c1b6c07d2c0f7e5bc32101c9cc222dc
CCTV17,http://112.81.218.254:35455/gaoma/cctv17.m3u8
CCTV17,http://yc.myds.me:35455/gaoma/cctv17.m3u8
CCTV17,http://1.itv.nctv.top:7777/gaoma/cctv17.m3u8
CCTV17,http://36.105.100.208:35455/gaoma/cctv17.m3u8
CCTV17,http://39.77.34.83:35455/gaoma/cctv17.m3u8
CCTV17,http://xiaoya.crccxw.top:35455/gaoma/cctv17.m3u8
CCTV164,http://1.itv.nctv.top:7777/gaoma/cctv4k16.m3u8
CCTV风云剧场,http://dassby.qqff.top:99/live/风云剧场/index.m3u8
CCTV世界地理,http://180.213.174.225:9901/tsfile/live/1051_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV怀旧剧场,http://180.213.174.225:9901/tsfile/live/1049_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV第一剧场,http://180.213.174.225:9901/tsfile/live/1050_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV第一剧场,http://180.213.174.225:9901/tsfile/live/1048_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV20241,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream_bduid_6488563992_8982723413/merged_1707497046297_88536_25144_41936.m3u8
CCTV15,http://113.57.93.165:9900/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路30』 CCTV15,http://113.57.93.165:9900/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路30』
CCTV15,http://123.130.84.106:8154/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路32』 CCTV15,http://123.130.84.106:8154/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路32』
CCTV15,http://113.57.20.158:9901/tsfile/live/1034_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路36』 CCTV15,http://113.57.20.158:9901/tsfile/live/1034_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路36』
@@ -68,6 +307,102 @@ CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
卫视,#genre# 卫视,#genre#
安多卫视,https://liveout.xntv.tv/a65jur/96iln2.m3u8
安多卫视,https://livecdn.dmqhyadmin.com/hls/xjmenyuan.m3u8
安徽卫视,http://43.129.81.169/live.ahsx.ahtv.cn/live/ahwssx.m3u8
安徽卫视,http://115.149.139.141:10000/tsfile/live/1028_1.m3u8?key=txiptv&playlive=0&authid=0
安徽卫视,http://39.164.160.249:9901/tsfile/live/0130_1.m3u8
北京卫视,http://183.215.134.239:19901/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0
北京卫视,http://115.149.139.141:10000/tsfile/live/1022_1.m3u8?key=txiptv&playlive=0&authid=0
北京卫视,http://42.225.117.174:11199/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0
北京卫视,http://58.220.219.14:9901/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0
兵团卫视,http://liveout.btzx.com.cn/62ds9e/yil08g.m3u8
兵团卫视,https://liveout.btzx.com.cn/62ds9e/yil08g.m3u8
藏语卫视,http://php.jdshipin.com:8880/xztv.php?id=zy
重庆卫视,http://zzssw01.55555.io:9901/tsfile/live/0142_1.m3u8
重庆卫视,http://218.29.168.146:352/tsfile/live/0142_1.m3u8?key=txiptv&playlive=1&authid=0
重庆卫视,http://220.164.192.48:50085/tsfile/live/0131_1.m3u8
重庆卫视,http://61.136.67.238:50085/tsfile/live/0142_1.m3u8
重庆卫视,http://222.173.108.238:352/tsfile/live/1016_1.m3u8?key=txiptv&playlive=1&authid=0
大湾区卫视,http://222.128.55.152:9080/live/dwq.m3u8
东方卫视,http://183.215.134.239:19901/tsfile/live/0107_1.m3u8?key=txiptv&playlive=1&authid=0
东方卫视,http://39.164.160.249:9901/tsfile/live/0107_1.m3u8
东方卫视,http://tv.20191209.xyz:37377/migu/651632648.m3u8?migutoken=a9a2b71c87ef01a1f546b80d3776d4e2ab5a03525b06b379f6d3ebca3a7a40f732115ab805783c8a8a73e5580900755cdfb3b6d3c2b9308a46141d56b6b629038613c381a9027a60e527e1c8
东南卫视,http://120.76.248.139/live/bfgd/4200000483.m3u8
东南卫视,http://115.149.139.141:10001/tsfile/live/1035_1.m3u8?blog.ntnas.top
东南卫视,http://live.nctv.top/IDOPEpiryt/fjtv.php?id=5
东南卫视,http://220.164.192.48:50085/tsfile/live/0120_1.m3u8
甘肃卫视,http://live.zohi.tv/video/s10001-fztv-3/index.m3u8
广东卫视,http://183.215.134.239:19901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0
广东卫视,http://115.149.139.141:10001/tsfile/live/1029_1.m3u8?blog.ntnas.top
广东卫视,http://222.173.108.238:352/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0
广东卫视,http://39.164.160.249:9901/tsfile/live/0125_1.m3u8
广东卫视,http://ttkx.cc:1658/公开源454/mg9.php?id=gdws
广东卫视,http://live.nctv.top/IDOPEpiryt/migu.php?id=gdws
广西卫视,http://live.cztv.cc:85/live/ggpd.m3u8
广西卫视,https://mobilelive.gxtv.cn/live/gx_live1004/playlist.m3u8
广西卫视,http://42.225.117.174:11199/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0
广西卫视,http://115.149.139.141:10000/tsfile/live/1037_1.m3u8?key=txiptv&playlive=0&authid=0
广西卫视,http://220.164.192.48:50085/tsfile/live/0112_1.m3u8
广西卫视,http://115.149.139.141:10001/tsfile/live/1037_1.m3u8?blog.ntnas.top
广西卫视,http://116.9.204.242:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0
广西卫视,http://116.9.204.242:9901/tsfile/live/0113_1.m3u8
贵州卫视,http://39.164.160.249:9901/tsfile/live/0120_1.m3u8
海峡卫视,http://live.nctv.top/IDOPEpiryt/fjtv.php?id=3
河北卫视,http://116.131.190.210:352/tsfile/live/0117_1.m3u8?key=txiptv&playlive=1&authid=0
河北卫视,http://60.8.49.38:352/tsfile/live/0117_1.m3u8?key=txiptv&playlive=1&authid=0
河南卫视,http://42.225.117.174:11199/tsfile/live/0139_1.m3u8?key=txiptv&playlive=1&authid=0
河南卫视,http://live.nctv.top/IDOPEpiryt/hntv.php?id=hnws
河南卫视,http://39.164.160.249:9901/tsfile/live/0139_1.m3u8
黑龙江卫视,http://115.149.139.141:10000/tsfile/live/1030_1.m3u8?key=txiptv&playlive=0&authid=0
黑龙江卫视,http://39.164.160.249:9901/tsfile/live/0143_1.m3u8
湖北卫视,http://115.149.139.141:10001/tsfile/live/1027_1.m3u8
湖南卫视,http://183.215.134.239:19901/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0
湖南卫视,http://39.164.160.249:9901/tsfile/live/0128_1.m3u8
湖南卫视,http://60.223.224.176:8888/newlive/live/hls/22/live.m3u8
吉林卫视,http://220.164.192.48:50085/tsfile/live/0118_1.m3u8
江苏卫视,http://42.225.117.174:11199/tsfile/live/0127_1.m3u8?key=txiptv&playlive=1&authid=0
江苏卫视,http://114.105.98.95:37377/migu/623899368.m3u8?migutoken=0c1255f44cf0460d401afd9fdc722c6398b97c5880dc9c45f00ae3faa4d208ecd6942cc08a2f3f09bac00b520297cc93d1b83c17d52ade00620508eae303d397c58e8b1deb59c8ac4158cd7d
江苏卫视,http://tv.20191209.xyz:37377/migu/623899368.m3u8?migutoken=0c1255f44cf0460d401afd9fdc722c6398b97c5880dc9c45f00ae3faa4d208ecd6942cc08a2f3f09bac00b520297cc93d1b83c17d52ade00620508eae303d397c58e8b1deb59c8ac4158cd7d
江苏卫视,http://live.nctv.top/IDOPEpiryt/jstv5.php?id=jsws
江苏卫视,http://live.nctv.top/IDOPEpiryt/jstv.php?id=jsws
江西卫视,http://120.76.248.139/live/bfgd/4200000098.m3u8
江西卫视,http://183.215.134.239:19901/tsfile/live/0138_1.m3u8?key=txiptv&playlive=1&authid=0
江西卫视,http://222.173.108.238:352/tsfile/live/1010_1.m3u8?key=txiptv&playlive=1&authid=0
辽宁卫视,http://222.173.108.238:352/tsfile/live/1008_1.m3u8?key=txiptv&playlive=1&authid=0
辽宁卫视,http://39.164.160.249:9901/tsfile/live/0121_1.m3u8
辽宁卫视,http://115.149.139.141:10001/tsfile/live/1028_1.m3u8
辽宁卫视,http://115.149.139.141:10001/tsfile/live/1028_1.m3u8?blog.ntnas.top
内蒙古蒙古语卫视,http://live.nctv.top/IDOPEpiryt/nmgtv.php?id=nmmyws
内蒙古蒙语卫视,https://livestream-bt.nmtv.cn/nmtv/2315general.m3u8?txSecret=4971666599ef9411629213c9a300bf66&txTime=771EF880
内蒙古卫视,https://ali-m-l.cztv.com/channels/lantian/channel007/1080p.m3u8
内蒙古卫视,https://livestream-bt.nmtv.cn/nmtv/3208526general.m3u8?txSecret=eb5a3102dd5406c7ffeddf560b024952&txTime=76B2F9A0
厦门卫视,http://220.161.87.62:8090/hls/0/index.m3u8?zfud$LR•IPV4『线路28』
厦门卫视,http://220.161.87.62:8090/hls/0/index.m3u8?zfud
山东卫视,http://120.76.248.139/live/bfgd/4200000099.m3u8
山西卫视,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel7/playlist.m3u8
山西卫视,http://42.225.117.174:11199/tsfile/live/0118_1.m3u8?key=txiptv&playlive=1&authid=0
山西卫视,http://60.223.224.176:8888/newlive/live/hls/43/live.m3u8?
陕西卫视,http://42.225.117.174:11199/tsfile/live/0136_1.m3u8?key=txiptv&playlive=1&authid=0
深圳卫视,http://120.76.248.139/live/bfgd/4200000100.m3u8
深圳卫视,http://115.149.139.141:10000/tsfile/live/1032_1.m3u8?key=txiptv&playlive=0&authid=0
深圳卫视,http://183.215.134.239:19901/tsfile/live/0126_1.m3u8?key=txiptv&playlive=1&authid=0
深圳卫视,http://yncbn.ks-cdn.gitv.tv/gitv_live/G_SHENZHEN-HQ/G_SHENZHEN-HQ.m3u8
深圳卫视,http://115.149.139.141:10001/tsfile/live/1032_1.m3u8
天津卫视,http://115.149.139.141:10001/tsfile/live/1036_1.m3u8
天津卫视,http://222.173.108.238:352/tsfile/live/0135_1.m3u8?key=txiptv&playlive=1&authid=0
亚洲卫视,https://p2hs.vzan.com/slowlive/821481626725612419/live.m3u8
延边卫视,http://l.cztvcloud.com/channels/lantian/SXxinchang2/720p.m3u8
延边卫视,http://l.cztvcloud.com/channels/lantian/SXxinchang2/720p.m3u8$LR•IPV4『线路20』
云南卫视,http://39.164.160.249:9901/tsfile/live/0119_1.m3u8
浙江卫视,https://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8?
浙江卫视,http://ali-m-l.cztv.com:80/channels/lantian/channel001/1080p.m3u8
浙江卫视,https://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
浙江卫视,http://zwebl02.cztv.com/live/channel011080P.m3u8?auth_key=2524708799-0-0-9a1229d8b9d311024ebea08c3fb1d63f
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel01/1080p.m3u8
浙江卫视,https://stream1.freetv.fun/2e3a01b886780ceca10b44bb6cdb57413757275a6fdcb083800db996bc2f81e3.m3u8
湖南卫视,http://61.136.172.236:9901/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路77』 湖南卫视,http://61.136.172.236:9901/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路77』
浙江卫视,http://wouu.net:9977/udp/239.93.0.124:5140$LR•IPV4『线路157』 浙江卫视,http://wouu.net:9977/udp/239.93.0.124:5140$LR•IPV4『线路157』
北京卫视,http://61.156.228.12:8154/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路83』 北京卫视,http://61.156.228.12:8154/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路83』
@@ -81,52 +416,6 @@ CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
深圳卫视,http://123.129.70.178:9901/tsfile/live/0126_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路68』 深圳卫视,http://123.129.70.178:9901/tsfile/live/0126_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路68』
广东卫视,http://123.129.70.178:9901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路88』 广东卫视,http://123.129.70.178:9901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路88』
广西卫视,http://61.136.172.236:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路54』 广西卫视,http://61.136.172.236:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路54』
南方卫视,http://114.252.238.87:8000/udp/239.3.1.161:8001$LR•IPV4『线路3』
湖南卫视,http://110.7.131.129:8096/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路113』
湖南卫视,http://116.117.105.236:8096/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路117』
湖南卫视,http://116.117.105.71:8096/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路118』
湖南卫视,http://116.117.105.96:8096/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路119』
浙江卫视,http://110.7.131.129:8096/tsfile/live/0124_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路122』
浙江卫视,http://116.117.105.236:8096/tsfile/live/0124_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路126』
浙江卫视,http://116.117.105.71:8096/tsfile/live/0124_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路127』
浙江卫视,http://116.117.105.96:8096/tsfile/live/0124_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路128』
东方卫视,http://110.7.131.129:8096/tsfile/live/0107_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路125』
东方卫视,http://116.117.105.236:8096/tsfile/live/0107_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路128』
东方卫视,http://116.117.105.71:8096/tsfile/live/0107_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路129』
东方卫视,http://116.117.105.96:8096/tsfile/live/0107_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路130』
北京卫视,http://110.7.131.129:8096/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路115』
北京卫视,http://116.117.105.236:8096/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路119』
北京卫视,http://116.117.105.71:8096/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路120』
北京卫视,http://116.117.105.96:8096/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路121』
江苏卫视,http://110.7.131.129:8096/tsfile/live/0127_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路124』
江苏卫视,http://116.117.105.236:8096/tsfile/live/0127_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路128』
江苏卫视,http://116.117.105.71:8096/tsfile/live/0127_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路129』
江苏卫视,http://116.117.105.96:8096/tsfile/live/0127_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路130』
安徽卫视,http://110.7.131.129:8096/tsfile/live/0130_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路107』
安徽卫视,http://116.117.105.236:8096/tsfile/live/0130_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路111』
安徽卫视,http://116.117.105.71:8096/tsfile/live/0130_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路112』
安徽卫视,http://116.117.105.96:8096/tsfile/live/0130_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路113』
广东卫视,http://110.7.131.129:8096/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路124』
广东卫视,http://116.117.105.236:8096/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路128』
广东卫视,http://116.117.105.71:8096/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路129』
广东卫视,http://116.117.105.96:8096/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路130』
甘肃卫视,http://58.220.219.14:9901/tsfile/live/0141_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路65』
黑龙江卫视,http://110.7.131.129:8096/tsfile/live/0143_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路111』
黑龙江卫视,http://116.117.105.236:8096/tsfile/live/0143_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路114』
黑龙江卫视,http://116.117.105.71:8096/tsfile/live/0143_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路115』
黑龙江卫视,http://116.117.105.96:8096/tsfile/live/0143_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路116』
江西卫视,http://110.7.131.129:8096/tsfile/live/0138_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路109』
江西卫视,http://116.117.105.236:8096/tsfile/live/0138_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路113』
江西卫视,http://116.117.105.71:8096/tsfile/live/0138_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路114』
江西卫视,http://116.117.105.96:8096/tsfile/live/0138_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路115』
天津卫视,http://110.7.131.129:8096/tsfile/live/0135_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路115』
天津卫视,http://116.117.105.236:8096/tsfile/live/0135_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路118』
天津卫视,http://116.117.105.71:8096/tsfile/live/0135_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路119』
天津卫视,http://116.117.105.96:8096/tsfile/live/0135_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路120』
兵团卫视,http://110.7.131.129:8096/tsfile/live/0115_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路26』
兵团卫视,http://116.117.105.236:8096/tsfile/live/0115_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路28』
兵团卫视,http://116.117.105.71:8096/tsfile/live/0115_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路29』
兵团卫视,http://116.117.105.96:8096/tsfile/live/0115_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路30』
天津卫视,http://60.7.56.33:4000/rtp/239.253.92.91:8021$1920x1080 天津卫视,http://60.7.56.33:4000/rtp/239.253.92.91:8021$1920x1080
青海卫视,http://stream.qhbtv.com/qhws/sd/live.m3u8 青海卫视,http://stream.qhbtv.com/qhws/sd/live.m3u8
延边卫视,http://live.ybtvyun.com/video/s10006-44f040627ca1/index.m3u8 延边卫视,http://live.ybtvyun.com/video/s10006-44f040627ca1/index.m3u8
+98 -64
View File
@@ -121,70 +121,104 @@ https://tv.iill.top/migu/dds
https://tv.iill.top/migu/mgty https://tv.iill.top/migu/mgty
#INSERT_HERE #INSERT_HERE
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」06:55 常规赛 湖人VS魔术 王晓晨 孔德昕 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」06:55 常规赛 魔术VS黄蜂 周赫
https://tv.iill.top/NBA/CbWNev https://tv.iill.top/NBA/SjOKO0
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」06:55 常规赛 湖人VS魔术 郑泽鹏 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」06:55 常规赛 马刺VS活塞 王晓晨
https://tv.iill.top/NBA/RA1Z7Z https://tv.iill.top/NBA/CBnDms
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」06:55 常规赛 森林狼VS步行者 邢晨 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:15 常规赛 勇士VS热火 杨健 李根 小七
https://tv.iill.top/NBA/HGLdH7 https://tv.iill.top/NBA/mOYwZG
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」06:55 常规赛 猛龙VS奇才 董倡硕 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:25 常规赛 勇士VS热火 拜月宁
https://tv.iill.top/NBA/CpzmxH https://tv.iill.top/NBA/xkxny2
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:25 常规赛 独行侠VS篮网 陈鑫隆 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:25 常规赛 勇士VS热火 莫俊祺
https://tv.iill.top/NBA/dZZqHs https://tv.iill.top/NBA/p5ZYge
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:55 常规赛 76人VS鹈鹕 姜帆 贾磊 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:25 常规赛 勇士VS热火 洪荒
https://tv.iill.top/NBA/itOtVZ https://tv.iill.top/NBA/eVTb2F
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」08:55 常规赛 公牛VS掘金 邵化谦 周赫 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:25 常规赛 独行侠VS尼克斯 刘芳宇
https://tv.iill.top/NBA/7Ld8AD https://tv.iill.top/NBA/pgWuT6
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」09:45 常规赛 雄鹿VS太阳 张浩岳 徐咏 王羽希 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」07:55 常规赛 老鹰VS火箭 陈鑫隆
https://tv.iill.top/NBA/TftHAK https://tv.iill.top/NBA/2xUwaM
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」09:45 常规赛 凯尔特人VS国王 季孟年 李根 拜月宁 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」08:55 常规赛 灰熊VS爵士 邵化谦
https://tv.iill.top/NBA/2cslkV https://tv.iill.top/NBA/moRfuI
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」10:00 陈垣宇/蒯曼、黄友政/孙晨晋级 陈垣宇/蒯曼、黄友政/孙晨晋级 2号桌 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」09:55 常规赛 骑士VS开拓者 姜帆
https://tv.iill.top/Migu/0ugFPi https://tv.iill.top/NBA/FlbdFU
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「LPL」15:40 2025LPL第二赛段小组赛Day4 2025LPL第二赛段小组赛Day4 官方解说 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/NBA.png" group-title="•咪咕「NBA」", 「NBA」09:45 常规赛 雷霆VS国王 庄宁宇 陈正昊 魏欣怡
https://tv.iill.top/Migu/fwUW9g https://tv.iill.top/NBA/2ocC55
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」17:30 姚钧涛领衔港乒众将冲正赛 姚钧涛领衔港乒众将冲正赛 2号桌 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTA」02:00 郑钦文0-2萨巴伦卡 郑钦文0-2萨巴伦卡 清流播出
https://tv.iill.top/Migu/qKu0V8 https://tv.iill.top/Migu/9LpQXJ
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」17:30 姚钧涛领衔港乒众将冲正赛 姚钧涛领衔港乒众将冲正赛 3号桌 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」10:00 钱天一晋级16强 刘炜珊3-4王添艺 钱天一晋级16强 刘炜珊3-4王添艺 周泽昊
https://tv.iill.top/Migu/75DWEd https://tv.iill.top/Migu/l8OdmG
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」17:30 姚钧涛领衔港乒众将冲正赛 姚钧涛领衔港乒众将冲正赛 4号桌 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」10:00 钱天一晋级16强 刘炜珊3-4王添艺 钱天一晋级16强 刘炜珊3-4王添艺 2号桌
https://tv.iill.top/Migu/GLPXBV https://tv.iill.top/Migu/8n4dqT
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 徐海东/陈幸同、诗和远方出战 徐海东/陈幸同、诗和远方出战 周泽昊 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」10:00 钱天一晋级16强 刘炜珊3-4王添艺 钱天一晋级16强 刘炜珊3-4王添艺 3号桌
https://tv.iill.top/Migu/fVFZNp https://tv.iill.top/Migu/nn7lBG
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 徐海东/陈幸同、诗和远方出战 徐海东/陈幸同、诗和远方出战 1号桌 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」10:00 钱天一晋级16强 刘炜珊3-4王添艺 钱天一晋级16强 刘炜珊3-4王添艺 4号桌
https://tv.iill.top/Migu/cIr2o9 https://tv.iill.top/Migu/HOaXJJ
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 徐海东/陈幸同、诗和远方出战 徐海东/陈幸同、诗和远方出战 2号桌 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」10:00 钱天一晋级16强 刘炜珊3-4王添艺 钱天一晋级16强 刘炜珊3-4王添艺 5号桌
https://tv.iill.top/Migu/5jwsFC https://tv.iill.top/Migu/wB3HDA
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 徐海东/陈幸同、诗和远方出战 徐海东/陈幸同、诗和远方出战 3号桌 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」10:00 钱天一晋级16强 刘炜珊3-4王添艺 钱天一晋级16强 刘炜珊3-4王添艺 1号桌
https://tv.iill.top/Migu/2GhqAu https://tv.iill.top/Migu/t49ghE
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 徐海东/陈幸同、诗和远方出战 徐海东/陈幸同、诗和远方出战 4号桌 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」10:00 钱天一晋级16强 刘炜珊3-4王添艺 钱天一晋级16强 刘炜珊3-4王添艺 狂欢Yeah
https://tv.iill.top/Migu/SR7bfi https://tv.iill.top/Migu/AhlTKq
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 徐海东/陈幸同、诗和远方出战 徐海东/陈幸同、诗和远方出战 5号桌 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「LPL」15:40 2025LPL第二赛段小组赛Day5 2025LPL第二赛段小组赛Day5 官方解说
https://tv.iill.top/Migu/QVDq1y https://tv.iill.top/Migu/CaWWbk
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 徐海东/陈幸同、诗和远方出战 徐海东/陈幸同、诗和远方出战 狂欢Yeah #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「KPL」16:40 长沙TES.A vs 深圳KLG 长沙TES.A vs 深圳KLG 官方解说
https://tv.iill.top/Migu/eGKpAT https://tv.iill.top/Migu/ihROzt
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「咪咕体育日报」18:00 咪咕体育日报-场外直击国足世预赛 咪咕体育日报-场外直击国足世预赛 咪咕体育日报: 咪咕体育日报-在现场 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」17:30 申裕斌/柳韩娜女双出战冲正赛 申裕斌/柳韩娜女双出战冲正赛 1号桌
https://tv.iill.top/Migu/7MoZnp https://tv.iill.top/Migu/mVZR6F
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WCBA」19:20 半决赛 内蒙古农信 VS 东莞新彤盛 吕程 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」17:30 申裕斌/柳韩娜女双出战冲正赛 申裕斌/柳韩娜女双出战冲正赛 2号桌
https://tv.iill.top/Migu/jQ3fhV https://tv.iill.top/Migu/vwysIL
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WCBA」19:20 半决赛 内蒙古农信 VS 东莞新彤盛 解说 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」18:40 申裕斌/柳韩娜女双出战冲正赛 申裕斌/柳韩娜女双出战冲正赛 3号桌
https://tv.iill.top/Migu/ojKo7S https://tv.iill.top/Migu/KVnIvZ
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WCBA」19:15 半决赛 四川蜀道远达 VS 山西竹叶青酒 解说 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「WTT」18:40 申裕斌/柳韩娜女双出战冲正赛 申裕斌/柳韩娜女双出战冲正赛 4号桌
https://tv.iill.top/Migu/MrvBY3 https://tv.iill.top/Migu/fs2zxg
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:00 常规赛第44轮 南京头排苏酒vs北京北汽 杨健 李根 秋童 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 混双、男女单打17至32名附加赛 混双、男女单打17至32名附加赛 周冠达
https://tv.iill.top/Migu/W5GNzf https://tv.iill.top/Migu/qBX9Xm
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第44轮 南京头排苏酒vs北京北汽 王港 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 混双、男女单打17至32名附加赛 混双、男女单打17至32名附加赛 1号桌
https://tv.iill.top/Migu/bmqbV2 https://tv.iill.top/Migu/tDFNPJ
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第44轮 南京头排苏酒vs北京北汽 刘芳宇 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 混双、男女单打17至32名附加赛 混双、男女单打17至32名附加赛 2号桌
https://tv.iill.top/Migu/uX4pNw https://tv.iill.top/Migu/ugDcec
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第44轮 南京头排苏酒vs北京北汽 现场原声 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 混双、男女单打17至32名附加赛 混双、男女单打17至32名附加赛 3号桌
https://tv.iill.top/Migu/0erVhX https://tv.iill.top/Migu/ncf0a0
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:00 常规赛第44轮 宁波町渥vs天津先行者 寇逸豪 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 混双、男女单打17至32名附加赛 混双、男女单打17至32名附加赛 4号桌
https://tv.iill.top/Migu/xTva5t https://tv.iill.top/Migu/y9mTW1
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第44轮 宁波町渥vs天津先行者 现场原声 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 混双、男女单打17至32名附加赛 混双、男女单打17至32名附加赛 5号桌
https://tv.iill.top/Migu/uf8faZ https://tv.iill.top/Migu/2gO5o3
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「盐城国际足球邀请赛」19:35 盐城国际足球邀请赛 中国U22 vs 越南U22 2025中国之队国际足球邀请赛-中国U22-越南U22 #EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「十五运乒乓球项目资格赛」18:00 混双、男女单打17至32名附加赛 混双、男女单打17至32名附加赛 狂欢Yeah
https://tv.iill.top/Migu/gOWq8w https://tv.iill.top/Migu/F64sWN
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」18:30 北控vs辽宁赛前训练 北控vs辽宁赛前训练 周赫
https://tv.iill.top/Migu/1ilKbK
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」18:30 北控vs辽宁赛前训练 北控vs辽宁赛前训练 哈秋
https://tv.iill.top/Migu/Pii6G9
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:00 常规赛第45轮 山东高速vs新疆伊力特 邵化谦 曾令旭 拜月宁
https://tv.iill.top/Migu/vXpfQ3
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 山东高速vs新疆伊力特 罗森
https://tv.iill.top/Migu/c8N85B
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 山东高速vs新疆伊力特 盛哲
https://tv.iill.top/Migu/NAAKfZ
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 山东高速vs新疆伊力特 现场原声
https://tv.iill.top/Migu/d6YAed
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:10 常规赛第45轮 青岛国信制药vs上海久事 连睿 周鹏 张兆旭
https://tv.iill.top/Migu/4TI1Sb
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 青岛国信制药vs上海久事 刘沛元
https://tv.iill.top/Migu/VDpSaQ
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 青岛国信制药vs上海久事 陈渤胄
https://tv.iill.top/Migu/DDln5n
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 青岛国信制药vs上海久事 现场原声
https://tv.iill.top/Migu/4S6vBd
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:10 常规赛第45轮 北京控股vs辽宁本钢 孔德昕 霍楠
https://tv.iill.top/Migu/5CQ1Wh
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 北京控股vs辽宁本钢 周赫
https://tv.iill.top/Migu/yNtdij
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 北京控股vs辽宁本钢 哈秋
https://tv.iill.top/Migu/Xsp6K9
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 北京控股vs辽宁本钢 现场原声
https://tv.iill.top/Migu/LfFT1t
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 北京控股vs辽宁本钢 明星机位1
https://tv.iill.top/Migu/gGboBD
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「CBA」19:25 常规赛第45轮 北京控股vs辽宁本钢 明星机位2
https://tv.iill.top/Migu/RAeFLD
#EXTINF:-1 tvg-logo="https://epg.iill.top/logo/咪咕.png" group-title="•咪咕「体育」", 「KPL」20:00 济南RW侠 vs 西安WE 济南RW侠 vs 西安WE 官方解说
https://tv.iill.top/Migu/jk8AQM
#EXTINF:-1 tvg-id="凤凰中文" tvg-name="凤凰中文" tvg-logo="https://epg.iill.top/logo/凤凰中文.png" http-user-agent="FengWatch/5.4.14" group-title="•港澳「限制」",鳳凰衛視·中文「限UA」 #EXTINF:-1 tvg-id="凤凰中文" tvg-name="凤凰中文" tvg-logo="https://epg.iill.top/logo/凤凰中文.png" http-user-agent="FengWatch/5.4.14" group-title="•港澳「限制」",鳳凰衛視·中文「限UA」
http://dns.yiandrive.com:15907/phenix/fhzw http://dns.yiandrive.com:15907/phenix/fhzw
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+1719 -1797
View File
File diff suppressed because it is too large. Load diff
-2
View File
@@ -27,8 +27,6 @@
"site_urls": [ "site_urls": [
"https://mihdr.top", "https://mihdr.top",
"http://www.miqk.cc", "http://www.miqk.cc",
"http://www.xhww.net",
"http://xhww.net",
"https://xiaomiai.site" "https://xiaomiai.site"
], ],
"url_key": "Netfixtv", "url_key": "Netfixtv",
File diff suppressed because it is too large. Load diff
+1294 -1478
View File
File diff suppressed because it is too large. Load diff
+88 -47
View File
@@ -2,12 +2,12 @@
"wallpaper": "https://xn--dkw0c.v.nxog.top/m//t/", "wallpaper": "https://xn--dkw0c.v.nxog.top/m//t/",
"logo": "https://alicliimg.clewm.net/342/790/68790342/17369906896774bd3d1d8ba1877dea5d967a137aa23d91736990672.gif", "logo": "https://alicliimg.clewm.net/342/790/68790342/17369906896774bd3d1d8ba1877dea5d967a137aa23d91736990672.gif",
"spider": "./spider.jar", "spider": "./spider.jar",
"warningText": "【网络收集,免费分享】请勿演示贩卖,接口即将关闭提示:\n📢接口软件永远免费 \n📢长期维护切勿贩卖", "warningText": "【公众号欧歌APP网络收集】接口即将关闭,请勿演示提示:\n📢接口软件永远免费 \n📢长期维护切勿贩卖",
"lives": [ "lives": [
{ {
"name": "【网络收集,免费分享】请勿演示贩卖,接口即将关闭", "name": "【公众号欧歌APP网络收集】接口即将关闭,请勿演示",
"type": 0, "type": 0,
"url": "./lives/【网络收集,免费分享】请勿演示贩卖,接口即将关闭.txt", "url": "./lives/【公众号欧歌APP网络收集】接口即将关闭,请勿演示.txt",
"epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}" "epg": "http://cdn.1678520.xyz/epg/?ch={name}&date={date}"
}, },
{ {
@@ -32,20 +32,20 @@
"sites": [ "sites": [
{ {
"key": "豆瓣2", "key": "豆瓣2",
"name": "📢【网络收集,免费分享】请勿演示贩卖,接口即将关闭", "name": "📢【公众号欧歌APP网络收集】接口即将关闭,请勿演示",
"type": 3, "type": 3,
"api": "csp_Douban", "api": "csp_Douban",
"searchable": 0 "searchable": 0
}, },
{ {
"key": "豆瓣1", "key": "豆瓣1",
"name": "📢【网络收集,免费分享】请勿演示贩卖,接口即将关闭公告❤更新:3/11❤", "name": "📢【公众号欧歌APP网络收集】接口即将关闭,请勿演示公告❤更新:3/26❤",
"type": 3, "type": 3,
"api": "csp_Notice", "api": "csp_Notice",
"searchable": 0, "searchable": 0,
"changeable": 0, "changeable": 0,
"jar": "./jars/豆瓣1.jar", "jar": "./jars/豆瓣1.jar",
"ext": "https://nxog.top/%E5%85%AC%E4%BC%97%E5%8F%B7%E6%AC%A7%E6%AD%8CAPP/ts/?b=【网络收集,免费分享】请勿演示贩卖,接口即将关闭" "ext": "https://欧歌.yy.nxog.top/公告.php?b=【公众号欧歌APP网络收集】接口即将关闭,请勿演示"
}, },
{ {
"key": "欧歌弹幕", "key": "欧歌弹幕",
@@ -159,16 +159,6 @@
"playerType": 2, "playerType": 2,
"ext": "eaHR0cHM6Ly9kLmRjbW92aWUudG9w" "ext": "eaHR0cHM6Ly9kLmRjbW92aWUudG9w"
}, },
{
"key": "全网",
"name": "💡全网|影视",
"type": 3,
"api": "csp_Quanwk",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "https://www.91qkw.com"
},
{ {
"key": "低端", "key": "低端",
"name": "💡低端|影视", "name": "💡低端|影视",
@@ -187,23 +177,6 @@
"quickSearch": 1, "quickSearch": 1,
"filterable": 1 "filterable": 1
}, },
{
"key": "厂长",
"name": "💡厂长|资源",
"type": 3,
"api": "csp_Czzy",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
"key": "米兔",
"name": "💡米兔|影视",
"type": 3,
"searchable": 1,
"quickSearch": 1,
"api": "csp_MiTuApp"
},
{ {
"key": "洽洽影视", "key": "洽洽影视",
"name": "💡洽洽|影视", "name": "💡洽洽|影视",
@@ -222,14 +195,6 @@
"quickSearch": 1, "quickSearch": 1,
"api": "csp_MovieApp" "api": "csp_MovieApp"
}, },
{
"key": "小米兄弟",
"name": "💡兄弟|影视",
"type": 3,
"searchable": 1,
"quickSearch": 1,
"api": "csp_XiongDiApp"
},
{ {
"key": "金牌影视", "key": "金牌影视",
"name": "💡金牌|影视", "name": "💡金牌|影视",
@@ -249,20 +214,52 @@
"ext": "caHR0cHM6Ly8xMjN5c3cuY29tfDIz5b2x6KeGfDQuMS44" "ext": "caHR0cHM6Ly8xMjN5c3cuY29tfDIz5b2x6KeGfDQuMS44"
}, },
{ {
"key": "时常", "key": "起点",
"name": "💡时常|影视", "name": "💡起点|影视",
"type": 3, "type": 3,
"api": "csp_Xdai", "api": "csp_Xdai",
"playerType": 1, "playerType": 1,
"ext": "jaHR0cHM6Ly9zYzEwODAudG9wfGU1OWQ0NGIyZWVmMDNiYTJ8ZTU5ZDQ0YjJlZWYwM2JhMnwxMzQ=" "ext": "jaHR0cDovL2NhaWppLm8wYS5jbnw3MGZkNjFkOTkxZjQzMjU3fDcwZmQ2MWQ5OTFmNDMyNTd8MTAw"
}, },
{ {
"key": "现代", "key": "光速",
"name": "💡现代|影视", "name": "💡光速|影视",
"type": 3, "type": 3,
"api": "csp_Xdai", "api": "csp_Xdai",
"playerType": 1, "playerType": 1,
"ext": "caHR0cHM6Ly94ZHlzLnZpcC9nZXRhcHAudHh0fHN6ZGp3ZGFwcHdjbm1kaGJ8c3pkandkYXBwd2NubWRoYnwxMTQ=" "ext": "jaHR0cDovLzU5LjE1My4xNjcuMTM3Ojg4OTl8NGQ4M2I4N2M0YzVlYTExMXw0ZDgzYjg3YzRjNWVhMTExfDQ2Mg=="
},
{
"key": "优秀",
"name": "💡优秀|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cDovL2FpLnhpYW95dW4uaW5rfEtMckZxU2ptYzRPSWo3NkJ8S0xyRnFTam1jNE9Jajc2QnwzMDA="
},
{
"key": "莉莉",
"name": "💡莉莉|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cDovLzExMS4xODAuMTk4LjQwOjExMTB8NDk0ODA4MDgwbGdneXNjb3w0OTQ4MDgwODBsZ2d5c2NvfDY2Ng=="
},
{
"key": "雨滴",
"name": "💡雨滴|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cHM6Ly95ZHlzZHluYW1pY2RvbWFpbm5hbWUuNjguZ3k6MTA2NzgvYzltMmpzMjk4eDgyaDYvbDltOGJ4MjNqMm8ycDlxL2R5bmFtaWNkb21haW5uYW1lLnR4dHxrOW8zcDJjOGI3bTN6MG84fGs5bzNwMmM4YjdtM3owbzh8MTAw"
},
{
"key": "优质",
"name": "💡优质|影视",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cHM6Ly9keXl6dHZhcHBhcGlnb29kZ3guNjguZ3k6MTI2ODkvY2l3azI4dnUzOGlvOC9hcGl1cmwudHh0fGR5eXp0dmFwaWFwcHl5ZHN8ZHl5enR2YXBpYXBweXlkc3wxMDA="
}, },
{ {
"key": "来看影视", "key": "来看影视",
@@ -280,6 +277,50 @@
"api": "csp_YGP", "api": "csp_YGP",
"searchable": 0 "searchable": 0
}, },
{
"key": "猎手影视",
"name": "💡猎手|影视",
"type": 3,
"api": "./api/猎手影视.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2
},
{
"key": "火车影视",
"name": "💡火车|影视",
"type": 3,
"api": "./api/火车影视.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2
},
{
"key": "美帕影视",
"name": "💡美帕|影视",
"type": 3,
"api": "./api/美帕影视.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2
},
{
"key": "嗨皮影视",
"name": "💡嗨皮|影视",
"type": 3,
"api": "./api/嗨皮影视.py",
"searchable": 1,
"changeable": 1,
"quickSearch": 1,
"filterable": 1,
"playerType": 2
},
{ {
"key": "厂长弹幕", "key": "厂长弹幕",
"name": "💘厂长|弹幕", "name": "💘厂长|弹幕",
+3045 -10
View File
File diff suppressed because it is too large. Load diff
-68
View File
@@ -1,68 +0,0 @@
/***
* gbk编码解码函数
* strTool = gbkTool() strTool.encode(key)
* @returns {{encode: (function(*): *), decode: (function(*): *)}}
*/
export function gbkTool(){
var data=function(zipData){
var re=zipData
.replace(/#(\d+)\$/g,function(a,b){
return Array(+b+3).join('#');
})
.replace(/#/g,'####')
.replace(/(\w\w):([\w#]+)(?:,|$)/g,function(a,hd,dt){
return dt.replace(/../g,function(a){
if(a!='##'){
return hd+a;
}else{
return a;
}
});
});
return re;
}('4e:020405060f12171f20212326292e2f313335373c40414244464a5155575a5b6263646567686a6b6c6d6e6f727475767778797a7b7c7d7f808182838485878a#909697999c9d9ea3aaafb0b1b4b6b7b8b9bcbdbec8cccfd0d2dadbdce0e2e6e7e9edeeeff1f4f8f9fafcfe,4f:00020304050607080b0c12131415161c1d212328292c2d2e31333537393b3e3f40414244454748494a4b4c525456616266686a6b6d6e7172757778797a7d8081828586878a8c8e909293959698999a9c9e9fa1a2a4abadb0b1b2b3b4b6b7b8b9babbbcbdbec0c1c2c6c7c8c9cbcccdd2d3d4d5d6d9dbe0e2e4e5e7ebecf0f2f4f5f6f7f9fbfcfdff,50:000102030405060708090a#0b0e1011131516171b1d1e20222324272b2f303132333435363738393b3d3f404142444546494a4b4d5051525354565758595b5d5e5f6061626364666768696a6b6d6e6f70717273747578797a7c7d818283848687898a8b8c8e8f909192939495969798999a9b9c9d9e9fa0a1a2a4a6aaabadaeafb0b1b3b4b5b6b7b8b9bcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdced0d1d2d3d4d5d7d8d9dbdcdddedfe0e1e2e3e4e5e8e9eaebeff0f1f2f4f6f7f8f9fafcfdfeff,51:00010203040508#090a0c0d0e0f1011131415161718191a1b1c1d1e1f2022232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e42474a4c4e4f5052535758595b5d5e5f606163646667696a6f727a7e7f838486878a8b8e8f90919394989a9d9e9fa1a3a6a7a8a9aaadaeb4b8b9babebfc1c2c3c5c8cacdced0d2d3d4d5d6d7d8d9dadcdedfe2e3e5e6e7e8e9eaeceef1f2f4f7fe,52:0405090b0c0f101314151c1e1f2122232526272a2c2f313234353c3e4445464748494b4e4f5253555758#595a5b5d5f6062636466686b6c6d6e7071737475767778797a7b7c7e808384858687898a8b8c8d8e8f91929495969798999a9ca4a5a6a7aeafb0b4b5b6b7b8b9babbbcbdc0c1c2c4c5c6c8cacccdcecfd1d3d4d5d7d9dadbdcdddee0e1e2e3e5e6e7e8e9eaebecedeeeff1f2f3f4f5f6f7f8fbfcfd,53:0102030407090a0b0c0e11121314181b1c1e1f2224252728292b2c2d2f3031323334353637383c3d404244464b4c4d505458595b5d65686a6c6d7276797b7c7d7e80818387888a8e8f#90919293949697999b9c9ea0a1a4a7aaabacadafb0b1b2b3b4b5b7b8b9babcbdbec0c3c4c5c6c7cecfd0d2d3d5dadcdddee1e2e7f4fafeff,54:000205070b1418191a1c2224252a303336373a3d3f4142444547494c4d4e4f515a5d5e5f6061636567696a6b6c6d6e6f7074797a7e7f8183858788898a8d919397989c9e9fa0a1a2a5aeb0b2b5b6b7b9babcbec3c5cacbd6d8dbe0e1e2e3e4ebeceff0f1f4f5f6f7f8f9fbfe,55:0002030405080a0b0c0d0e121315161718191a1c1d1e1f212526#28292b2d3234353638393a3b3d40424547484b4c4d4e4f515253545758595a5b5d5e5f60626368696b6f7071727374797a7d7f85868c8d8e9092939596979a9b9ea0a1a2a3a4a5a6a8a9aaabacadaeafb0b2b4b6b8babcbfc0c1c2c3c6c7c8cacbcecfd0d5d7d8d9dadbdee0e2e7e9edeef0f1f4f6f8f9fafbfcff,56:0203040506070a0b0d1011121314151617191a1c1d202122252628292a2b2e2f30333537383a3c3d3e404142434445464748494a4b4f5051525355565a5b5d5e5f6061#636566676d6e6f70727374757778797a7d7e7f80818283848788898a8b8c8d9091929495969798999a9b9c9d9e9fa0a1a2a4a5a6a7a8a9aaabacadaeb0b1b2b3b4b5b6b8b9babbbdbebfc0c1c2c3c4c5c6c7c8c9cbcccdcecfd0d1d2d3d5d6d8d9dce3e5e6e7e8e9eaeceeeff2f3f6f7f8fbfc,57:00010205070b0c0d0e0f101112131415161718191a1b1d1e202122242526272b313234353637383c3d3f414344454648494b52535455565859626365676c6e707172747578797a7d7e7f80#818788898a8d8e8f90919495969798999a9c9d9e9fa5a8aaacafb0b1b3b5b6b7b9babbbcbdbebfc0c1c4c5c6c7c8c9cacccdd0d1d3d6d7dbdcdee1e2e3e5e6e7e8e9eaebeceef0f1f2f3f5f6f7fbfcfeff,58:0103040508090a0c0e0f101213141617181a1b1c1d1f222325262728292b2c2d2e2f31323334363738393a3b3c3d3e3f4041424345464748494a4b4e4f505253555657595a5b5c5d5f6061626364666768696a6d6e6f707172737475767778797a7b7c7d7f82848687888a8b8c#8d8e8f909194959697989b9c9da0a1a2a3a4a5a6a7aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbdbebfc0c2c3c4c6c7c8c9cacbcccdcecfd0d2d3d4d6d7d8d9dadbdcdddedfe0e1e2e3e5e6e7e8e9eaedeff1f2f4f5f7f8fafbfcfdfeff,59:000103050608090a0b0c0e1011121317181b1d1e2021222326282c30323335363b3d3e3f404345464a4c4d505253595b5c5d5e5f616364666768696a6b6c6d6e6f70717275777a7b7c7e7f8085898b8c8e8f90919495989a9b9c9d9fa0a1a2a6#a7acadb0b1b3b4b5b6b7b8babcbdbfc0c1c2c3c4c5c7c8c9cccdcecfd5d6d9dbdedfe0e1e2e4e6e7e9eaebedeeeff0f1f2f3f4f5f6f7f8fafcfdfe,5a:00020a0b0d0e0f101214151617191a1b1d1e2122242627282a2b2c2d2e2f3033353738393a3b3d3e3f414243444547484b4c4d4e4f5051525354565758595b5c5d5e5f60616364656668696b6c6d6e6f7071727378797b7c7d7e808182838485868788898a8b8c8d8e8f9091939495969798999c9d9e9fa0a1a2a3a4a5a6a7a8a9abac#adaeafb0b1b4b6b7b9babbbcbdbfc0c3c4c5c6c7c8cacbcdcecfd0d1d3d5d7d9dadbdddedfe2e4e5e7e8eaecedeeeff0f2f3f4f5f6f7f8f9fafbfcfdfeff,5b:0001020304050607080a0b0c0d0e0f10111213141518191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303133353638393a3b3c3d3e3f4142434445464748494a4b4c4d4e4f52565e606167686b6d6e6f7274767778797b7c7e7f82868a8d8e90919294969fa7a8a9acadaeafb1b2b7babbbcc0c1c3c8c9cacbcdcecf#d1d4d5d6d7d8d9dadbdce0e2e3e6e7e9eaebecedeff1f2f3f4f5f6f7fdfe,5c:0002030507080b0c0d0e10121317191b1e1f2021232628292a2b2d2e2f303233353637434446474c4d5253545657585a5b5c5d5f62646768696a6b6c6d70727374757677787b7c7d7e808384858687898a8b8e8f9293959d9e9fa0a1a4a5a6a7a8aaaeafb0b2b4b6b9babbbcbec0c2c3c5c6c7c8c9cacccdcecfd0d1d3d4d5d6d7d8dadbdcdddedfe0e2e3e7e9ebeceeeff1f2f3f4f5f6f7f8f9fafcfdfeff,5d:00#01040508090a0b0c0d0f10111213151718191a1c1d1f2021222325282a2b2c2f3031323335363738393a3b3c3f4041424344454648494d4e4f5051525354555657595a5c5e5f6061626364656667686a6d6e7071727375767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f90Line truncated
U2Ghash={},
G2Uhash={};
!function(data){
var k=0;
data=data.match(/..../g);
for(var i=0x81;i<=0xfe;i++){
for(var j=0x40;j<=0xFE;j++){
U2Ghash[data[k++]]=('%'+i.toString(16)+'%'+j.toString(16))
.toUpperCase();
}
}
for(var key in U2Ghash){
G2Uhash[U2Ghash[key]]=key;
}
}(data);
function isAscii(unicode) {
return ((unicode == 0x20AC) || (unicode <= 0x007F && unicode >= 0x0000));
}
return{
encode:function(str){
return str.replace(/./g,function(a){
var code=a.charCodeAt(0);
if(isAscii(code)){
return encodeURIComponent(a);
}else{
var key=code.toString(16);
if(key.length!=4)key=('000'+key).match(/....$/)[0];
return U2Ghash[key]||a;
}
});
},
decode:function(str){
return str.replace(/%[0-9A-F]{2}%[0-9A-F]{2}/g,function(a){
if(a in G2Uhash){
return String.fromCharCode('0x'+G2Uhash[a]);
}else{
return a;
}
}).replace(/%[\w]{2}/g,function(a){
return decodeURIComponent(a);
});
}
};
}
+48 -18
View File
@@ -89,7 +89,9 @@
}; };
Parser.prototype.tokenize = function(src) { Parser.prototype.tokenize = function(src) {
var lastEnd = 0, parser = this, trimLeading = false; var lastEnd = 0,
parser = this,
trimLeading = false;
matchAll(src, START_TOKEN, function(open, index, src) { matchAll(src, START_TOKEN, function(open, index, src) {
//here we match the rest of the src against a regex for this tag //here we match the rest of the src against a regex for this tag
var match = src.slice(index + open.length).match(TAGS[open]); var match = src.slice(index + open.length).match(TAGS[open]);
@@ -169,12 +171,15 @@
if (i < 0) return JSON.stringify([src]); if (i < 0) return JSON.stringify([src]);
var name = src.slice(0, i); var name = src.slice(0, i);
var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1); var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1);
args = this.parseExpr(args, {terms: true}); args = this.parseExpr(args, {
terms: true
});
return '[' + JSON.stringify(name) + ',' + args + ']'; return '[' + JSON.stringify(name) + ',' + args + ']';
}; };
Parser.prototype.extractEnt = function(src, regex, placeholder) { Parser.prototype.extractEnt = function(src, regex, placeholder) {
var subs = [], isFunc = typeof placeholder == 'function'; var subs = [],
isFunc = typeof placeholder == 'function';
src = src.replace(regex, function(str) { src = src.replace(regex, function(str) {
var replacement = isFunc ? placeholder(str) : placeholder; var replacement = isFunc ? placeholder(str) : placeholder;
if (replacement) { if (replacement) {
@@ -183,13 +188,19 @@
} }
return str; return str;
}); });
return {src: src, subs: subs}; return {
src: src,
subs: subs
};
}; };
Parser.prototype.injectEnt = function(extracted, placeholder) { Parser.prototype.injectEnt = function(extracted, placeholder) {
var src = extracted.src, subs = extracted.subs, isArr = Array.isArray(src); var src = extracted.src,
subs = extracted.subs,
isArr = Array.isArray(src);
var arr = (isArr) ? src : [src]; var arr = (isArr) ? src : [src];
var re = new RegExp('[' + placeholder + ']', 'g'), i = 0; var re = new RegExp('[' + placeholder + ']', 'g'),
i = 0;
arr.forEach(function(src, index) { arr.forEach(function(src, index) {
arr[index] = src.replace(re, function() { arr[index] = src.replace(re, function() {
return subs[i++]; return subs[i++];
@@ -257,7 +268,8 @@
Parser.prototype.parseVar = function(src) { Parser.prototype.parseVar = function(src) {
var args = Array.prototype.slice.call(arguments); var args = Array.prototype.slice.call(arguments);
var str = args.pop(), index = args.pop(); var str = args.pop(),
index = args.pop();
//quote bare object identifiers (might be a reserved word like {while: 1}) //quote bare object identifiers (might be a reserved word like {while: 1})
if (src === 'i' && str.charAt(index + 1) === ':') { if (src === 'i' && str.charAt(index + 1) === ':') {
return '"i"'; return '"i"';
@@ -385,20 +397,22 @@
tagHandlers.elif = tagHandlers.elseif; tagHandlers.elif = tagHandlers.elseif;
var getRuntime = function runtime(data, opts) { var getRuntime = function runtime(data, opts) {
var defaults = {autoEscape: 'toJson'}; var defaults = {
autoEscape: 'toJson'
};
var _toString = Object.prototype.toString; var _toString = Object.prototype.toString;
var _hasOwnProperty = Object.prototype.hasOwnProperty; var _hasOwnProperty = Object.prototype.hasOwnProperty;
var getKeys = Object.keys || function(obj) { var getKeys = Object.keys || function(obj) {
var keys = []; var keys = [];
for (var n in obj) if (_hasOwnProperty.call(obj, n)) keys.push(n); for (var n in obj)
if (_hasOwnProperty.call(obj, n)) keys.push(n);
return keys; return keys;
}; };
var isArray = Array.isArray || function(obj) { var isArray = Array.isArray || function(obj) {
return _toString.call(obj) === '[object Array]'; return _toString.call(obj) === '[object Array]';
}; };
var create = Object.create || function(obj) { var create = Object.create || function(obj) {
function F() { function F() {}
}
F.prototype = obj; F.prototype = obj;
return new F(); return new F();
@@ -417,7 +431,8 @@
}; };
//get a value, lexically, starting in current context; a.b -> get("a","b") //get a value, lexically, starting in current context; a.b -> get("a","b")
var get = function() { var get = function() {
var val, n = arguments[0], c = stack.length; var val, n = arguments[0],
c = stack.length;
while (c--) { while (c--) {
val = stack[c][n]; val = stack[c][n];
if (typeof val != 'undefined') break; if (typeof val != 'undefined') break;
@@ -443,7 +458,9 @@
}; };
var filter = function(val) { var filter = function(val) {
for (var i = 1, len = arguments.length; i < len; i++) { for (var i = 1, len = arguments.length; i < len; i++) {
var arr = arguments[i], name = arr[0], filter = filters[name]; var arr = arguments[i],
name = arr[0],
filter = filters[name];
if (filter) { if (filter) {
arr[0] = val; arr[0] = val;
//now arr looks like [val, arg1, arg2] //now arr looks like [val, arg1, arg2]
@@ -460,11 +477,21 @@
}; };
var each = function(obj, loopvar, fn1, fn2) { var each = function(obj, loopvar, fn1, fn2) {
if (obj == null) return; if (obj == null) return;
var arr = isArray(obj) ? obj : getKeys(obj), len = arr.length; var arr = isArray(obj) ? obj : getKeys(obj),
var ctx = {loop: {length: len, first: arr[0], last: arr[len - 1]}}; len = arr.length;
var ctx = {
loop: {
length: len,
first: arr[0],
last: arr[len - 1]
}
};
push(ctx); push(ctx);
for (var i = 0; i < len; i++) { for (var i = 0; i < len; i++) {
extend(ctx.loop, {index: i + 1, index0: i}); extend(ctx.loop, {
index: i + 1,
index0: i
});
fn1(ctx[loopvar] = arr[i]); fn1(ctx[loopvar] = arr[i]);
} }
if (len === 0 && fn2) fn2(); if (len === 0 && fn2) fn2();
@@ -498,7 +525,8 @@
return toString(val); return toString(val);
} }
}, opts.filters || {}); }, opts.filters || {});
var stack = [create(data || {})], output = []; var stack = [create(data || {})],
output = [];
return { return {
get: get, get: get,
set: set, set: set,
@@ -531,7 +559,9 @@
runtime = runtime || (runtime = getRuntime.toString()); runtime = runtime || (runtime = getRuntime.toString());
fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))'); fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))');
} }
return {render: fn}; return {
render: fn
};
}; };
jinja.render = function(markup, data, opts) { jinja.render = function(markup, data, opts) {
+185 -90
View File
@@ -19,247 +19,342 @@
} }
})(this, () => { })(this, () => {
return /******/ (() => { // webpackBootstrap return /******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({ /******/
var __webpack_modules__ = ({
/***/ "./lib/JSEncrypt.js": /***/
"./lib/JSEncrypt.js":
/*!**************************!*\ /*!**************************!*\
!*** ./lib/JSEncrypt.js ***! !*** ./lib/JSEncrypt.js ***!
\**************************/ \**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* binding */ JSEncrypt)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./JSEncryptRSAKey */ \"./lib/JSEncryptRSAKey.js\");\n/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \"./node_modules/process/browser.js\");\nvar _a;\n\n\nvar version = typeof process !== 'undefined'\n ? (_a = process.env) === null || _a === void 0 ? void 0 : \"3.3.2\"\n : undefined;\n/**\n *\n * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour\n * possible parameters are:\n * - default_key_size {number} default: 1024 the key size in bit\n * - default_public_exponent {string} default: '010001' the hexadecimal representation of the public exponent\n * - log {boolean} default: false whether log warn/error or not\n * @constructor\n */\nvar JSEncrypt = /** @class */ (function () {\n function JSEncrypt(options) {\n if (options === void 0) { options = {}; }\n options = options || {};\n this.default_key_size = options.default_key_size\n ? parseInt(options.default_key_size, 10)\n : 1024;\n this.default_public_exponent = options.default_public_exponent || \"010001\"; // 65537 default openssl public exponent for rsa key type\n this.log = options.log || false;\n // The private and public key.\n this.key = null;\n }\n /**\n * Method to set the rsa key parameter (one method is enough to set both the public\n * and the private key, since the private key contains the public key paramenters)\n * Log a warning if logs are enabled\n * @param {Object|string} key the pem encoded string or an object (with or without header/footer)\n * @public\n */\n JSEncrypt.prototype.setKey = function (key) {\n if (this.log && this.key) {\n console.warn(\"A key was already set, overriding existing.\");\n }\n this.key = new _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__.JSEncryptRSAKey(key);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPrivateKey = function (privkey) {\n // Create the key.\n this.setKey(privkey);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPublicKey = function (pubkey) {\n // Sets the public key.\n this.setKey(pubkey);\n };\n /**\n * Proxy method for RSAKey object's decrypt, decrypt the string using the private\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str base64 encoded crypted string to decrypt\n * @return {string} the decrypted string\n * @public\n */\n JSEncrypt.prototype.decrypt = function (str) {\n // Return the decrypted string.\n try {\n return this.getKey().decrypt((0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.b64tohex)(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's encrypt, encrypt the string using the public\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str the string to encrypt\n * @return {string} the encrypted string encoded in base64\n * @public\n */\n JSEncrypt.prototype.encrypt = function (str) {\n // Return the encrypted string.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().encrypt(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's sign.\n * @param {string} str the string to sign\n * @param {function} digestMethod hash method\n * @param {string} digestName the name of the hash algorithm\n * @return {string} the signature encoded in base64\n * @public\n */\n JSEncrypt.prototype.sign = function (str, digestMethod, digestName) {\n // return the RSA signature of 'str' in 'hex' format.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().sign(str, digestMethod, digestName));\n }\n catch (ex) {\n return false;\n }\n };\n Line truncated eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* binding */ JSEncrypt)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./JSEncryptRSAKey */ \"./lib/JSEncryptRSAKey.js\");\n/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \"./node_modules/process/browser.js\");\nvar _a;\n\n\nvar version = typeof process !== 'undefined'\n ? (_a = process.env) === null || _a === void 0 ? void 0 : \"3.3.2\"\n : undefined;\n/**\n *\n * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour\n * possible parameters are:\n * - default_key_size {number} default: 1024 the key size in bit\n * - default_public_exponent {string} default: '010001' the hexadecimal representation of the public exponent\n * - log {boolean} default: false whether log warn/error or not\n * @constructor\n */\nvar JSEncrypt = /** @class */ (function () {\n function JSEncrypt(options) {\n if (options === void 0) { options = {}; }\n options = options || {};\n this.default_key_size = options.default_key_size\n ? parseInt(options.default_key_size, 10)\n : 1024;\n this.default_public_exponent = options.default_public_exponent || \"010001\"; // 65537 default openssl public exponent for rsa key type\n this.log = options.log || false;\n // The private and public key.\n this.key = null;\n }\n /**\n * Method to set the rsa key parameter (one method is enough to set both the public\n * and the private key, since the private key contains the public key paramenters)\n * Log a warning if logs are enabled\n * @param {Object|string} key the pem encoded string or an object (with or without header/footer)\n * @public\n */\n JSEncrypt.prototype.setKey = function (key) {\n if (this.log && this.key) {\n console.warn(\"A key was already set, overriding existing.\");\n }\n this.key = new _JSEncryptRSAKey__WEBPACK_IMPORTED_MODULE_1__.JSEncryptRSAKey(key);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPrivateKey = function (privkey) {\n // Create the key.\n this.setKey(privkey);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPublicKey = function (pubkey) {\n // Sets the public key.\n this.setKey(pubkey);\n };\n /**\n * Proxy method for RSAKey object's decrypt, decrypt the string using the private\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str base64 encoded crypted string to decrypt\n * @return {string} the decrypted string\n * @public\n */\n JSEncrypt.prototype.decrypt = function (str) {\n // Return the decrypted string.\n try {\n return this.getKey().decrypt((0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.b64tohex)(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's encrypt, encrypt the string using the public\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str the string to encrypt\n * @return {string} the encrypted string encoded in base64\n * @public\n */\n JSEncrypt.prototype.encrypt = function (str) {\n // Return the encrypted string.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().encrypt(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's sign.\n * @param {string} str the string to sign\n * @param {function} digestMethod hash method\n * @param {string} digestName the name of the hash algorithm\n * @return {string} the signature encoded in base64\n * @public\n */\n JSEncrypt.prototype.sign = function (str, digestMethod, digestName) {\n // return the RSA signature of 'str' in 'hex' format.\n try {\n return (0,_lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__.hex2b64)(this.getKey().sign(str, digestMethod, digestName));\n }\n catch (ex) {\n return false;\n }\n };\n Line truncated
/***/ }), /***/
}),
/***/ "./lib/JSEncryptRSAKey.js": /***/
"./lib/JSEncryptRSAKey.js":
/*!********************************!*\ /*!********************************!*\
!*** ./lib/JSEncryptRSAKey.js ***! !*** ./lib/JSEncryptRSAKey.js ***!
\********************************/ \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncryptRSAKey\": () => (/* binding */ JSEncryptRSAKey)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/asn1js/hex */ \"./lib/lib/asn1js/hex.js\");\n/* harmony import */ var _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/asn1js/base64 */ \"./lib/lib/asn1js/base64.js\");\n/* harmony import */ var _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/asn1js/asn1 */ \"./lib/lib/asn1js/asn1.js\");\n/* harmony import */ var _lib_jsbn_rsa__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/jsbn/rsa */ \"./lib/lib/jsbn/rsa.js\");\n/* harmony import */ var _lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/jsrsasign/asn1-1.0 */ \"./lib/lib/jsrsasign/asn1-1.0.js\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\n\n\n/**\n * Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object.\n * This object is just a decorator for parsing the key parameter\n * @param {string|Object} key - The key in string format, or an object containing\n * the parameters needed to build a RSAKey object.\n * @constructor\n */\nvar JSEncryptRSAKey = /** @class */ (function (_super) {\n __extends(JSEncryptRSAKey, _super);\n function JSEncryptRSAKey(key) {\n var _this = _super.call(this) || this;\n // Call the super constructor.\n // RSAKey.call(this);\n // If a key key was provided.\n if (key) {\n // If this is a string...\n if (typeof key === \"string\") {\n _this.parseKey(key);\n }\n else if (JSEncryptRSAKey.hasPrivateKeyProperty(key) ||\n JSEncryptRSAKey.hasPublicKeyProperty(key)) {\n // Set the values for the key.\n _this.parsePropertiesFrom(key);\n }\n }\n return _this;\n }\n /**\n * Method to parse a pem encoded string containing both a public or private key.\n * The method will translate the pem encoded string in a der encoded string and\n * will parse private key and public key parameters. This method accepts public key\n * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).\n *\n * @todo Check how many rsa formats use the same format of pkcs #1.\n *\n * The format is defined as:\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * it's possible to examine the structure of the keys obtained from openssl using\n * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/\n * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer\n * @private\n */\n JSEncryptRSAKey.prototype.parseKey = function (pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__.Hex.decode(pem) : _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.unarmor(pem);\n var asn1 = _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__.ASN1.decode(der);\n // Fixes a bug with OpenSSL Line truncated eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncryptRSAKey\": () => (/* binding */ JSEncryptRSAKey)\n/* harmony export */ });\n/* harmony import */ var _lib_jsbn_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/jsbn/base64 */ \"./lib/lib/jsbn/base64.js\");\n/* harmony import */ var _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/asn1js/hex */ \"./lib/lib/asn1js/hex.js\");\n/* harmony import */ var _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/asn1js/base64 */ \"./lib/lib/asn1js/base64.js\");\n/* harmony import */ var _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/asn1js/asn1 */ \"./lib/lib/asn1js/asn1.js\");\n/* harmony import */ var _lib_jsbn_rsa__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/jsbn/rsa */ \"./lib/lib/jsbn/rsa.js\");\n/* harmony import */ var _lib_jsbn_jsbn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _lib_jsrsasign_asn1_1_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/jsrsasign/asn1-1.0 */ \"./lib/lib/jsrsasign/asn1-1.0.js\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\n\n\n/**\n * Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object.\n * This object is just a decorator for parsing the key parameter\n * @param {string|Object} key - The key in string format, or an object containing\n * the parameters needed to build a RSAKey object.\n * @constructor\n */\nvar JSEncryptRSAKey = /** @class */ (function (_super) {\n __extends(JSEncryptRSAKey, _super);\n function JSEncryptRSAKey(key) {\n var _this = _super.call(this) || this;\n // Call the super constructor.\n // RSAKey.call(this);\n // If a key key was provided.\n if (key) {\n // If this is a string...\n if (typeof key === \"string\") {\n _this.parseKey(key);\n }\n else if (JSEncryptRSAKey.hasPrivateKeyProperty(key) ||\n JSEncryptRSAKey.hasPublicKeyProperty(key)) {\n // Set the values for the key.\n _this.parsePropertiesFrom(key);\n }\n }\n return _this;\n }\n /**\n * Method to parse a pem encoded string containing both a public or private key.\n * The method will translate the pem encoded string in a der encoded string and\n * will parse private key and public key parameters. This method accepts public key\n * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).\n *\n * @todo Check how many rsa formats use the same format of pkcs #1.\n *\n * The format is defined as:\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * it's possible to examine the structure of the keys obtained from openssl using\n * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/\n * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer\n * @private\n */\n JSEncryptRSAKey.prototype.parseKey = function (pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? _lib_asn1js_hex__WEBPACK_IMPORTED_MODULE_1__.Hex.decode(pem) : _lib_asn1js_base64__WEBPACK_IMPORTED_MODULE_2__.Base64.unarmor(pem);\n var asn1 = _lib_asn1js_asn1__WEBPACK_IMPORTED_MODULE_3__.ASN1.decode(der);\n // Fixes a bug with OpenSSL Line truncated
/***/ }), /***/
}),
/***/ "./lib/index.js": /***/
"./lib/index.js":
/*!**********************!*\ /*!**********************!*\
!*** ./lib/index.js ***! !*** ./lib/index.js ***!
\**********************/ \**********************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* reexport safe */ _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./JSEncrypt */ \"./lib/JSEncrypt.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt);\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/index.js?"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JSEncrypt\": () => (/* reexport safe */ _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _JSEncrypt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./JSEncrypt */ \"./lib/JSEncrypt.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_JSEncrypt__WEBPACK_IMPORTED_MODULE_0__.JSEncrypt);\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/index.js?");
/***/ }), /***/
}),
/***/ "./lib/lib/asn1js/asn1.js": /***/
"./lib/lib/asn1js/asn1.js":
/*!********************************!*\ /*!********************************!*\
!*** ./lib/lib/asn1js/asn1.js ***! !*** ./lib/lib/asn1js/asn1.js ***!
\********************************/ \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ASN1\": () => (/* binding */ ASN1),\n/* harmony export */ \"ASN1Tag\": () => (/* binding */ ASN1Tag),\n/* harmony export */ \"Stream\": () => (/* binding */ Stream)\n/* harmony export */ });\n/* harmony import */ var _int10__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./int10 */ \"./lib/lib/asn1js/int10.js\");\n// ASN.1 JavaScript decoder\n// Copyright (c) 2008-2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\n/*global oids */\n\nvar ellipsis = \"\\u2026\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = /** @class */ (function () {\n function Stream(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n }\n else {\n // enc should be an array or a binary string\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream.prototype.get = function (pos) {\n if (pos === undefined) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \".concat(pos, \" on a stream of length \").concat(this.enc.length));\n }\n return (\"string\" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream.prototype.hexByte = function (b) {\n return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF);\n };\n Stream.prototype.hexDump = function (start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 0xF) {\n case 0x7:\n s += \" \";\n break;\n case 0xF:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream.prototype.isASCII = function (start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream.prototype.parseStringISO = function (start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream.prototype.parseStringUTF = function (start, end) {\n var s = \"\";\n for (var i = start; i < end;) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F));\n }\n else {\n s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F));\n }\n }\n return s;\n };\n Stream.prototype.parseStringBMP = function (start, end) {\n var str = \"\";\n var hi;\n var lo;\n for (var i = start; i < end;) {\n hi = this.get(i++);\n lo = this.get(i++);\n str += String.fromCharCode((hi << 8) | lo);\n }\n return str;\n };\n Stream.prototype.parseTime = function (start, end, shortYear) {\n var s = this.parseStringISO(start, end);\n var m = (shoLine truncated eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ASN1\": () => (/* binding */ ASN1),\n/* harmony export */ \"ASN1Tag\": () => (/* binding */ ASN1Tag),\n/* harmony export */ \"Stream\": () => (/* binding */ Stream)\n/* harmony export */ });\n/* harmony import */ var _int10__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./int10 */ \"./lib/lib/asn1js/int10.js\");\n// ASN.1 JavaScript decoder\n// Copyright (c) 2008-2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\n/*global oids */\n\nvar ellipsis = \"\\u2026\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = /** @class */ (function () {\n function Stream(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n }\n else {\n // enc should be an array or a binary string\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream.prototype.get = function (pos) {\n if (pos === undefined) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \".concat(pos, \" on a stream of length \").concat(this.enc.length));\n }\n return (\"string\" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream.prototype.hexByte = function (b) {\n return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF);\n };\n Stream.prototype.hexDump = function (start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 0xF) {\n case 0x7:\n s += \" \";\n break;\n case 0xF:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream.prototype.isASCII = function (start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream.prototype.parseStringISO = function (start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream.prototype.parseStringUTF = function (start, end) {\n var s = \"\";\n for (var i = start; i < end;) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F));\n }\n else {\n s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F));\n }\n }\n return s;\n };\n Stream.prototype.parseStringBMP = function (start, end) {\n var str = \"\";\n var hi;\n var lo;\n for (var i = start; i < end;) {\n hi = this.get(i++);\n lo = this.get(i++);\n str += String.fromCharCode((hi << 8) | lo);\n }\n return str;\n };\n Stream.prototype.parseTime = function (start, end, shortYear) {\n var s = this.parseStringISO(start, end);\n var m = (shoLine truncated
/***/ }), /***/
}),
/***/ "./lib/lib/asn1js/base64.js": /***/
"./lib/lib/asn1js/base64.js":
/*!**********************************!*\ /*!**********************************!*\
!*** ./lib/lib/asn1js/base64.js ***! !*** ./lib/lib/asn1js/base64.js ***!
\**********************************/ \**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Base64\": () => (/* binding */ Base64)\n/* harmony export */ });\n// Base64 JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Base64 = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var ignore = \"= \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = Object.create(null);\n for (i = 0; i < 64; ++i) {\n decoder[b64.charAt(i)] = i;\n }\n decoder['-'] = 62; //+\n decoder['_'] = 63; //-\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n out[out.length] = bits & 0xFF;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw new Error(\"Base64 encoding incomplete: at least 2 bits missing\");\n case 2:\n out[out.length] = (bits >> 10);\n break;\n case 3:\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function (a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1]) {\n a = m[1];\n }\n else if (m[2]) {\n a = m[2];\n }\n else {\n throw new Error(\"RegExp out of sync\");\n }\n }\n return Base64.decode(a);\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/base64.js?"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Base64\": () => (/* binding */ Base64)\n/* harmony export */ });\n// Base64 JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Base64 = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var ignore = \"= \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = Object.create(null);\n for (i = 0; i < 64; ++i) {\n decoder[b64.charAt(i)] = i;\n }\n decoder['-'] = 62; //+\n decoder['_'] = 63; //-\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n out[out.length] = bits & 0xFF;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw new Error(\"Base64 encoding incomplete: at least 2 bits missing\");\n case 2:\n out[out.length] = (bits >> 10);\n break;\n case 3:\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function (a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1]) {\n a = m[1];\n }\n else if (m[2]) {\n a = m[2];\n }\n else {\n throw new Error(\"RegExp out of sync\");\n }\n }\n return Base64.decode(a);\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/base64.js?");
/***/ }), /***/
}),
/***/ "./lib/lib/asn1js/hex.js": /***/
"./lib/lib/asn1js/hex.js":
/*!*******************************!*\ /*!*******************************!*\
!*** ./lib/lib/asn1js/hex.js ***! !*** ./lib/lib/asn1js/hex.js ***!
\*******************************/ \*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Hex\": () => (/* binding */ Hex)\n/* harmony export */ });\n// Hex JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Hex = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = {};\n for (i = 0; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/hex.js?"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Hex\": () => (/* binding */ Hex)\n/* harmony export */ });\n// Hex JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nvar Hex = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = {};\n for (i = 0; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/hex.js?");
/***/ }), /***/
}),
/***/ "./lib/lib/asn1js/int10.js": /***/
"./lib/lib/asn1js/int10.js":
/*!*********************************!*\ /*!*********************************!*\
!*** ./lib/lib/asn1js/int10.js ***! !*** ./lib/lib/asn1js/int10.js ***!
\*********************************/ \*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Int10\": () => (/* binding */ Int10)\n/* harmony export */ });\n// Big integer base-10 printing library\n// Copyright (c) 2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256\nvar Int10 = /** @class */ (function () {\n function Int10(value) {\n this.buf = [+value || 0];\n }\n Int10.prototype.mulAdd = function (m, c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n }\n else {\n c = 0 | (t / max);\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int10.prototype.sub = function (c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n }\n else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int10.prototype.toString = function (base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int10.prototype.valueOf = function () {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int10.prototype.simplify = function () {\n var b = this.buf;\n return (b.length == 1) ? b[0] : this;\n };\n return Int10;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/int10.js?"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Int10\": () => (/* binding */ Int10)\n/* harmony export */ });\n// Big integer base-10 printing library\n// Copyright (c) 2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256\nvar Int10 = /** @class */ (function () {\n function Int10(value) {\n this.buf = [+value || 0];\n }\n Int10.prototype.mulAdd = function (m, c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n }\n else {\n c = 0 | (t / max);\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int10.prototype.sub = function (c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n }\n else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int10.prototype.toString = function (base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int10.prototype.valueOf = function () {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int10.prototype.simplify = function () {\n var b = this.buf;\n return (b.length == 1) ? b[0] : this;\n };\n return Int10;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/asn1js/int10.js?");
/***/ }), /***/
}),
/***/ "./lib/lib/jsbn/base64.js": /***/
"./lib/lib/jsbn/base64.js":
/*!********************************!*\ /*!********************************!*\
!*** ./lib/lib/jsbn/base64.js ***! !*** ./lib/lib/jsbn/base64.js ***!
\********************************/ \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"b64toBA\": () => (/* binding */ b64toBA),\n/* harmony export */ \"b64tohex\": () => (/* binding */ b64tohex),\n/* harmony export */ \"hex2b64\": () => (/* binding */ hex2b64)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nfunction hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n }\n else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0) {\n ret += b64pad;\n }\n return ret;\n}\n// convert a base64 string to hex\nfunction b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0; // b64 state, 0-3\n var slop = 0;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad) {\n break;\n }\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0) {\n continue;\n }\n if (k == 0) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 1;\n }\n else if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n slop = v & 0xf;\n k = 2;\n }\n else if (k == 2) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop);\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 3;\n }\n else {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v & 0xf);\n k = 0;\n }\n }\n if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop << 2);\n }\n return ret;\n}\n// convert a base64 string to a byte/number array\nfunction b64toBA(s) {\n // piggyback on b64tohex for now, optimize later\n var h = b64tohex(s);\n var i;\n var a = [];\n for (i = 0; 2 * i < h.length; ++i) {\n a[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16);\n }\n return a;\n}\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/base64.js?"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"b64toBA\": () => (/* binding */ b64toBA),\n/* harmony export */ \"b64tohex\": () => (/* binding */ b64tohex),\n/* harmony export */ \"hex2b64\": () => (/* binding */ hex2b64)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nfunction hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n }\n else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0) {\n ret += b64pad;\n }\n return ret;\n}\n// convert a base64 string to hex\nfunction b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0; // b64 state, 0-3\n var slop = 0;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad) {\n break;\n }\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0) {\n continue;\n }\n if (k == 0) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 1;\n }\n else if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n slop = v & 0xf;\n k = 2;\n }\n else if (k == 2) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop);\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v >> 2);\n slop = v & 3;\n k = 3;\n }\n else {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)((slop << 2) | (v >> 4));\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(v & 0xf);\n k = 0;\n }\n }\n if (k == 1) {\n ret += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(slop << 2);\n }\n return ret;\n}\n// convert a base64 string to a byte/number array\nfunction b64toBA(s) {\n // piggyback on b64tohex for now, optimize later\n var h = b64tohex(s);\n var i;\n var a = [];\n for (i = 0; 2 * i < h.length; ++i) {\n a[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16);\n }\n return a;\n}\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/base64.js?");
/***/ }), /***/
}),
/***/ "./lib/lib/jsbn/jsbn.js": /***/
"./lib/lib/jsbn/jsbn.js":
/*!******************************!*\ /*!******************************!*\
!*** ./lib/lib/jsbn/jsbn.js ***! !*** ./lib/lib/jsbn/jsbn.js ***!
\******************************/ \******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BigInteger\": () => (/* binding */ BigInteger),\n/* harmony export */ \"intAt\": () => (/* binding */ intAt),\n/* harmony export */ \"nbi\": () => (/* binding */ nbi),\n/* harmony export */ \"nbits\": () => (/* binding */ nbits),\n/* harmony export */ \"nbv\": () => (/* binding */ nbv),\n/* harmony export */ \"parseBigInt\": () => (/* binding */ parseBigInt)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\n\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null) {\n if (\"number\" == typeof a) {\n this.fromNumber(a, b, c);\n }\n else if (b == null && \"string\" != typeof a) {\n this.fromString(a, 256);\n }\n else {\n this.fromString(a, b);\n }\n }\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n return this.toRadix(b);\n }\n var km = (1 << k) - 1;\n var d;\n var m = false;\n var r = \"\";\n var i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) {\n m = true;\n }\n if (m) {\n r += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () {\n return (this.s < 0) ? this.negate() : this;\n };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0) {\n return r;\n }\n var i = this.t;\n r = i - a.t;\n if (r != 0) {\n return (this.s < 0) ? -r : r;\n }\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) {\n return r;\n }\n }\n return 0;\n };\n // BigInteger.protot Line truncated eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BigInteger\": () => (/* binding */ BigInteger),\n/* harmony export */ \"intAt\": () => (/* binding */ intAt),\n/* harmony export */ \"nbi\": () => (/* binding */ nbi),\n/* harmony export */ \"nbits\": () => (/* binding */ nbits),\n/* harmony export */ \"nbv\": () => (/* binding */ nbv),\n/* harmony export */ \"parseBigInt\": () => (/* binding */ parseBigInt)\n/* harmony export */ });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./lib/lib/jsbn/util.js\");\n// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\n\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null) {\n if (\"number\" == typeof a) {\n this.fromNumber(a, b, c);\n }\n else if (b == null && \"string\" != typeof a) {\n this.fromString(a, 256);\n }\n else {\n this.fromString(a, b);\n }\n }\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n return this.toRadix(b);\n }\n var km = (1 << k) - 1;\n var d;\n var m = false;\n var r = \"\";\n var i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) {\n m = true;\n }\n if (m) {\n r += (0,_util__WEBPACK_IMPORTED_MODULE_0__.int2char)(d);\n }\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () {\n return (this.s < 0) ? this.negate() : this;\n };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0) {\n return r;\n }\n var i = this.t;\n r = i - a.t;\n if (r != 0) {\n return (this.s < 0) ? -r : r;\n }\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) {\n return r;\n }\n }\n return 0;\n };\n // BigInteger.protot Line truncated
/***/ }), /***/
}),
/***/ "./lib/lib/jsbn/prng4.js": /***/
"./lib/lib/jsbn/prng4.js":
/*!*******************************!*\ /*!*******************************!*\
!*** ./lib/lib/jsbn/prng4.js ***! !*** ./lib/lib/jsbn/prng4.js ***!
\*******************************/ \*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Arcfour\": () => (/* binding */ Arcfour),\n/* harmony export */ \"prng_newstate\": () => (/* binding */ prng_newstate),\n/* harmony export */ \"rng_psize\": () => (/* binding */ rng_psize)\n/* harmony export */ });\n// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n // Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i;\n var j;\n var t;\n for (i = 0; i < 256; ++i) {\n this.S[i] = i;\n }\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\n\n// Plug in your RNG constructor here\nfunction prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nvar rng_psize = 256;\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/prng4.js?"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Arcfour\": () => (/* binding */ Arcfour),\n/* harmony export */ \"prng_newstate\": () => (/* binding */ prng_newstate),\n/* harmony export */ \"rng_psize\": () => (/* binding */ rng_psize)\n/* harmony export */ });\n// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n // Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i;\n var j;\n var t;\n for (i = 0; i < 256; ++i) {\n this.S[i] = i;\n }\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\n\n// Plug in your RNG constructor here\nfunction prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nvar rng_psize = 256;\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/prng4.js?");
/***/ }), /***/
}),
/***/ "./lib/lib/jsbn/rng.js": /***/
"./lib/lib/jsbn/rng.js":
/*!*****************************!*\ /*!*****************************!*\
!*** ./lib/lib/jsbn/rng.js ***! !*** ./lib/lib/jsbn/rng.js ***!
\*****************************/ \*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SecureRandom\": () => (/* binding */ SecureRandom)\n/* harmony export */ });\n/* harmony import */ var _prng4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./prng4 */ \"./lib/lib/jsbn/prng4.js\");\n// Random number generator - requires a PRNG backend, e.g. prng4.js\n\nvar rng_state;\nvar rng_pool = null;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var count = 0;\n var onMouseMoveListener_1 = function (ev) {\n count = count || 0;\n if (count >= 256 || rng_pptr >= _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (typeof window !== 'undefined') {\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = (0,_prng4__WEBPACK_IMPORTED_MODULE_0__.prng_newstate)();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/rng.js?"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SecureRandom\": () => (/* binding */ SecureRandom)\n/* harmony export */ });\n/* harmony import */ var _prng4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./prng4 */ \"./lib/lib/jsbn/prng4.js\");\n// Random number generator - requires a PRNG backend, e.g. prng4.js\n\nvar rng_state;\nvar rng_pool = null;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var count = 0;\n var onMouseMoveListener_1 = function (ev) {\n count = count || 0;\n if (count >= 256 || rng_pptr >= _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (typeof window !== 'undefined') {\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = (0,_prng4__WEBPACK_IMPORTED_MODULE_0__.prng_newstate)();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < _prng4__WEBPACK_IMPORTED_MODULE_0__.rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\n\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/rng.js?");
/***/ }), /***/
}),
/***/ "./lib/lib/jsbn/rsa.js": /***/
"./lib/lib/jsbn/rsa.js":
/*!*****************************!*\ /*!*****************************!*\
!*** ./lib/lib/jsbn/rsa.js ***! !*** ./lib/lib/jsbn/rsa.js ***!
\*****************************/ \*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"RSAKey\": () => (/* binding */ RSAKey)\n/* harmony export */ });\n/* harmony import */ var _jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _rng__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng */ \"./lib/lib/jsbn/rng.js\");\n// Depends on jsbn.js and rng.js\n// Version 1.1: support utf-8 encoding in pkcs1pad2\n// convert a (hex) string to a bignum object\n\n\n// function linebrk(s,n) {\n// var ret = \"\";\n// var i = 0;\n// while(i + n < s.length) {\n// ret += s.substring(i,i+n) + \"\\n\";\n// i += n;\n// }\n// return ret + s.substring(i,s.length);\n// }\n// function byte2Hex(b) {\n// if(b < 0x10)\n// return \"0\" + b.toString(16);\n// else\n// return b.toString(16);\n// }\nfunction pkcs1pad1(s, n) {\n if (n < s.length + 22) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var len = n - s.length - 6;\n var filler = \"\";\n for (var f = 0; f < len; f += 2) {\n filler += \"ff\";\n }\n var m = \"0001\" + filler + \"00\" + s;\n return (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(m, 16);\n}\n// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) { // TODO: fix for utf-8\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = [];\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) { // encode using utf-8\n ba[--n] = c;\n }\n else if ((c > 127) && (c < 2048)) {\n ba[--n] = (c & 63) | 128;\n ba[--n] = (c >> 6) | 192;\n }\n else {\n ba[--n] = (c & 63) | 128;\n ba[--n] = ((c >> 6) & 63) | 128;\n ba[--n] = (c >> 12) | 224;\n }\n }\n ba[--n] = 0;\n var rng = new _rng__WEBPACK_IMPORTED_MODULE_1__.SecureRandom();\n var x = [];\n while (n > 2) { // random non-zero pad\n x[0] = 0;\n while (x[0] == 0) {\n rng.nextBytes(x);\n }\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(ba);\n}\n// \"empty\" RSA key constructor\nvar RSAKey = /** @class */ (function () {\n function RSAKey() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n //#region PROTECTED\n // protected\n // RSAKey.prototype.doPublic = RSADoPublic;\n // Perform raw public operation on \"x\": return x^e (mod n)\n RSAKey.prototype.doPublic = function (x) {\n return x.modPowInt(this.e, this.n);\n };\n // RSAKey.prototype.doPrivate = RSADoPrivate;\n // Perform raw private operation on \"x\": return x^d (mod n)\n RSAKey.prototype.doPrivate = function (x) {\n if (this.p == null || this.q == null) {\n return x.modPow(this.d, this.n);\n }\n // TODO: re-calculate any missing CRT params\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0) {\n xp = xp.add(this.p);\n }\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n //#endregion PROTECTED\n //#region PUBLIC\n // RSAKey.prototype.setPublic = RSASetPublic;\n // Set the public key fields N and e from hex strings\n RSAKey.prototype.setPublic = function (N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(N, 16);\n this.e = parseInt(E, 16);\n }\n else {\n console.error(\"Invalid RSA public key\");\n }\n };\n // RSAKey.prototype.encrypt = RSAEncrypt;\n // Return the PKCS#1 RSA encryption of \"text\" as an even-length hex string\n RSAKey.prototype.encrypt = function (text) {\n var maxLength = (this.n.bitLength() + 7) >> 3;\n var m = pkcs1pad2(text, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPublic(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n // fix zero before result\n for (var i = 0; i < maxLength * 2 - length; i++) {\n h = \"0\" + h;\n }\n return h;\n };\n // RSAKey.prototype.setPrivate = RSASetPrivate;\n // Set the private key fields N, e, and d from hex strings\n RSAKey.prototype.setPrivate = function (N, E, Line truncated eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"RSAKey\": () => (/* binding */ RSAKey)\n/* harmony export */ });\n/* harmony import */ var _jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _rng__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng */ \"./lib/lib/jsbn/rng.js\");\n// Depends on jsbn.js and rng.js\n// Version 1.1: support utf-8 encoding in pkcs1pad2\n// convert a (hex) string to a bignum object\n\n\n// function linebrk(s,n) {\n// var ret = \"\";\n// var i = 0;\n// while(i + n < s.length) {\n// ret += s.substring(i,i+n) + \"\\n\";\n// i += n;\n// }\n// return ret + s.substring(i,s.length);\n// }\n// function byte2Hex(b) {\n// if(b < 0x10)\n// return \"0\" + b.toString(16);\n// else\n// return b.toString(16);\n// }\nfunction pkcs1pad1(s, n) {\n if (n < s.length + 22) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var len = n - s.length - 6;\n var filler = \"\";\n for (var f = 0; f < len; f += 2) {\n filler += \"ff\";\n }\n var m = \"0001\" + filler + \"00\" + s;\n return (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(m, 16);\n}\n// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) { // TODO: fix for utf-8\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = [];\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) { // encode using utf-8\n ba[--n] = c;\n }\n else if ((c > 127) && (c < 2048)) {\n ba[--n] = (c & 63) | 128;\n ba[--n] = (c >> 6) | 192;\n }\n else {\n ba[--n] = (c & 63) | 128;\n ba[--n] = ((c >> 6) & 63) | 128;\n ba[--n] = (c >> 12) | 224;\n }\n }\n ba[--n] = 0;\n var rng = new _rng__WEBPACK_IMPORTED_MODULE_1__.SecureRandom();\n var x = [];\n while (n > 2) { // random non-zero pad\n x[0] = 0;\n while (x[0] == 0) {\n rng.nextBytes(x);\n }\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new _jsbn__WEBPACK_IMPORTED_MODULE_0__.BigInteger(ba);\n}\n// \"empty\" RSA key constructor\nvar RSAKey = /** @class */ (function () {\n function RSAKey() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n //#region PROTECTED\n // protected\n // RSAKey.prototype.doPublic = RSADoPublic;\n // Perform raw public operation on \"x\": return x^e (mod n)\n RSAKey.prototype.doPublic = function (x) {\n return x.modPowInt(this.e, this.n);\n };\n // RSAKey.prototype.doPrivate = RSADoPrivate;\n // Perform raw private operation on \"x\": return x^d (mod n)\n RSAKey.prototype.doPrivate = function (x) {\n if (this.p == null || this.q == null) {\n return x.modPow(this.d, this.n);\n }\n // TODO: re-calculate any missing CRT params\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0) {\n xp = xp.add(this.p);\n }\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n //#endregion PROTECTED\n //#region PUBLIC\n // RSAKey.prototype.setPublic = RSASetPublic;\n // Set the public key fields N and e from hex strings\n RSAKey.prototype.setPublic = function (N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = (0,_jsbn__WEBPACK_IMPORTED_MODULE_0__.parseBigInt)(N, 16);\n this.e = parseInt(E, 16);\n }\n else {\n console.error(\"Invalid RSA public key\");\n }\n };\n // RSAKey.prototype.encrypt = RSAEncrypt;\n // Return the PKCS#1 RSA encryption of \"text\" as an even-length hex string\n RSAKey.prototype.encrypt = function (text) {\n var maxLength = (this.n.bitLength() + 7) >> 3;\n var m = pkcs1pad2(text, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPublic(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n // fix zero before result\n for (var i = 0; i < maxLength * 2 - length; i++) {\n h = \"0\" + h;\n }\n return h;\n };\n // RSAKey.prototype.setPrivate = RSASetPrivate;\n // Set the private key fields N, e, and d from hex strings\n RSAKey.prototype.setPrivate = function (N, E, Line truncated
/***/ }), /***/
}),
/***/ "./lib/lib/jsbn/util.js": /***/
"./lib/lib/jsbn/util.js":
/*!******************************!*\ /*!******************************!*\
!*** ./lib/lib/jsbn/util.js ***! !*** ./lib/lib/jsbn/util.js ***!
\******************************/ \******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"cbit\": () => (/* binding */ cbit),\n/* harmony export */ \"int2char\": () => (/* binding */ int2char),\n/* harmony export */ \"lbit\": () => (/* binding */ lbit),\n/* harmony export */ \"op_and\": () => (/* binding */ op_and),\n/* harmony export */ \"op_andnot\": () => (/* binding */ op_andnot),\n/* harmony export */ \"op_or\": () => (/* binding */ op_or),\n/* harmony export */ \"op_xor\": () => (/* binding */ op_xor)\n/* harmony export */ });\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\n//#region BIT_OPERATIONS\n// (public) this & a\nfunction op_and(x, y) {\n return x & y;\n}\n// (public) this | a\nfunction op_or(x, y) {\n return x | y;\n}\n// (public) this ^ a\nfunction op_xor(x, y) {\n return x ^ y;\n}\n// (public) this & ~a\nfunction op_andnot(x, y) {\n return x & ~y;\n}\n// return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\n if (x == 0) {\n return -1;\n }\n var r = 0;\n if ((x & 0xffff) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 0xff) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 0xf) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0) {\n ++r;\n }\n return r;\n}\n// return number of 1 bits in x\nfunction cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\n//#endregion BIT_OPERATIONS\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/util.js?"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"cbit\": () => (/* binding */ cbit),\n/* harmony export */ \"int2char\": () => (/* binding */ int2char),\n/* harmony export */ \"lbit\": () => (/* binding */ lbit),\n/* harmony export */ \"op_and\": () => (/* binding */ op_and),\n/* harmony export */ \"op_andnot\": () => (/* binding */ op_andnot),\n/* harmony export */ \"op_or\": () => (/* binding */ op_or),\n/* harmony export */ \"op_xor\": () => (/* binding */ op_xor)\n/* harmony export */ });\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\n//#region BIT_OPERATIONS\n// (public) this & a\nfunction op_and(x, y) {\n return x & y;\n}\n// (public) this | a\nfunction op_or(x, y) {\n return x | y;\n}\n// (public) this ^ a\nfunction op_xor(x, y) {\n return x ^ y;\n}\n// (public) this & ~a\nfunction op_andnot(x, y) {\n return x & ~y;\n}\n// return index of lowest 1-bit in x, x < 2^31\nfunction lbit(x) {\n if (x == 0) {\n return -1;\n }\n var r = 0;\n if ((x & 0xffff) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 0xff) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 0xf) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0) {\n ++r;\n }\n return r;\n}\n// return number of 1 bits in x\nfunction cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\n//#endregion BIT_OPERATIONS\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsbn/util.js?");
/***/ }), /***/
}),
/***/ "./lib/lib/jsrsasign/asn1-1.0.js": /***/
"./lib/lib/jsrsasign/asn1-1.0.js":
/*!***************************************!*\ /*!***************************************!*\
!*** ./lib/lib/jsrsasign/asn1-1.0.js ***! !*** ./lib/lib/jsrsasign/asn1-1.0.js ***!
\***************************************/ \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KJUR\": () => (/* binding */ KJUR)\n/* harmony export */ });\n/* harmony import */ var _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _yahoo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./yahoo */ \"./lib/lib/jsrsasign/yahoo.js\");\n/* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n/*\n * asn1.js - ASN.1 DER encoder classes\n *\n * Copyright (c) 2013-2017 Kenji Urushima (kenji.urushima@gmail.com)\n *\n * This software is licensed under the terms of the MIT License.\n * https://kjur.github.io/jsrsasign/license\n *\n * The above copyright and license notice shall be\n * included in all copies or substantial portions of the Software.\n */\n\n\n/**\n * @fileOverview\n * @name asn1-1.0.js\n * @author Kenji Urushima kenji.urushima@gmail.com\n * @version asn1 1.0.13 (2017-Jun-02)\n * @since jsrsasign 2.1\n * @license <a href=\"https://kjur.github.io/jsrsasign/license/\">MIT License</a>\n */\n/**\n * kjur's class library name space\n * <p>\n * This name space provides following name spaces:\n * <ul>\n * <li>{@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder</li>\n * <li>{@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL</li>\n * <li>{@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature\n * class and utilities</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.\n * @name KJUR\n * @namespace kjur's class library name space\n */\nvar KJUR = {};\n/**\n * kjur's ASN.1 class library name space\n * <p>\n * This is ITU-T X.690 ASN.1 DER encoder class library and\n * class structure and methods is very similar to\n * org.bouncycastle.asn1 package of\n * well known BouncyCaslte Cryptography Library.\n * <h4>PROVIDING ASN.1 PRIMITIVES</h4>\n * Here are ASN.1 DER primitive classes.\n * <ul>\n * <li>0x01 {@link KJUR.asn1.DERBoolean}</li>\n * <li>0x02 {@link KJUR.asn1.DERInteger}</li>\n * <li>0x03 {@link KJUR.asn1.DERBitString}</li>\n * <li>0x04 {@link KJUR.asn1.DEROctetString}</li>\n * <li>0x05 {@link KJUR.asn1.DERNull}</li>\n * <li>0x06 {@link KJUR.asn1.DERObjectIdentifier}</li>\n * <li>0x0a {@link KJUR.asn1.DEREnumerated}</li>\n * <li>0x0c {@link KJUR.asn1.DERUTF8String}</li>\n * <li>0x12 {@link KJUR.asn1.DERNumericString}</li>\n * <li>0x13 {@link KJUR.asn1.DERPrintableString}</li>\n * <li>0x14 {@link KJUR.asn1.DERTeletexString}</li>\n * <li>0x16 {@link KJUR.asn1.DERIA5String}</li>\n * <li>0x17 {@link KJUR.asn1.DERUTCTime}</li>\n * <li>0x18 {@link KJUR.asn1.DERGeneralizedTime}</li>\n * <li>0x30 {@link KJUR.asn1.DERSequence}</li>\n * <li>0x31 {@link KJUR.asn1.DERSet}</li>\n * </ul>\n * <h4>OTHER ASN.1 CLASSES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.ASN1Object}</li>\n * <li>{@link KJUR.asn1.DERAbstractString}</li>\n * <li>{@link KJUR.asn1.DERAbstractTime}</li>\n * <li>{@link KJUR.asn1.DERAbstractStructured}</li>\n * <li>{@link KJUR.asn1.DERTaggedObject}</li>\n * </ul>\n * <h4>SUB NAME SPACES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.cades} - CAdES long term signature format</li>\n * <li>{@link KJUR.asn1.cms} - Cryptographic Message Syntax</li>\n * <li>{@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)</li>\n * <li>{@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format</li>\n * <li>{@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace.\n * This caused by a bug of jsdoc2.\n * @name KJUR.asn1\n * @namespace\n */\nif (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1)\n KJUR.asn1 = {};\n/**\n * ASN1 utilities class\n * @name KJUR.asn1.ASN1Util\n * @class ASN1 utilities class\n * @since asn1 1.0.2\n */\nKJUR.asn1.ASN1Util = new function () {\n this.integerToByteHex = function (i) {\n var h = i.toString(16);\n if ((h.length % 2) == 1)\n h = '0' + h;\n return h;\n };\n this.bigIntToMinTwosComplementsHex = function (bigIntegerValue) {\n var h = bigIntegerValue.toString(16);\n if (h.substr(0, 1) != '-') {\n if (h.length % 2 == 1) {\n h = '0' + h;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n h = '00' + h;\n }\n }\n }\n else {\n var hPos = h.substr(1);\n var xorLen = hPos.length;\n if (xorLen % 2 == 1) {\n xorLen += 1;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n xorLen += 2;\n }\n }\n var hMask = '';\n for (var i = 0; i < xorLen; i++) {\n hMask += 'f';\n Line truncated eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KJUR\": () => (/* binding */ KJUR)\n/* harmony export */ });\n/* harmony import */ var _jsbn_jsbn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../jsbn/jsbn */ \"./lib/lib/jsbn/jsbn.js\");\n/* harmony import */ var _yahoo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./yahoo */ \"./lib/lib/jsrsasign/yahoo.js\");\n/* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n/*\n * asn1.js - ASN.1 DER encoder classes\n *\n * Copyright (c) 2013-2017 Kenji Urushima (kenji.urushima@gmail.com)\n *\n * This software is licensed under the terms of the MIT License.\n * https://kjur.github.io/jsrsasign/license\n *\n * The above copyright and license notice shall be\n * included in all copies or substantial portions of the Software.\n */\n\n\n/**\n * @fileOverview\n * @name asn1-1.0.js\n * @author Kenji Urushima kenji.urushima@gmail.com\n * @version asn1 1.0.13 (2017-Jun-02)\n * @since jsrsasign 2.1\n * @license <a href=\"https://kjur.github.io/jsrsasign/license/\">MIT License</a>\n */\n/**\n * kjur's class library name space\n * <p>\n * This name space provides following name spaces:\n * <ul>\n * <li>{@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder</li>\n * <li>{@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL</li>\n * <li>{@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature\n * class and utilities</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.\n * @name KJUR\n * @namespace kjur's class library name space\n */\nvar KJUR = {};\n/**\n * kjur's ASN.1 class library name space\n * <p>\n * This is ITU-T X.690 ASN.1 DER encoder class library and\n * class structure and methods is very similar to\n * org.bouncycastle.asn1 package of\n * well known BouncyCaslte Cryptography Library.\n * <h4>PROVIDING ASN.1 PRIMITIVES</h4>\n * Here are ASN.1 DER primitive classes.\n * <ul>\n * <li>0x01 {@link KJUR.asn1.DERBoolean}</li>\n * <li>0x02 {@link KJUR.asn1.DERInteger}</li>\n * <li>0x03 {@link KJUR.asn1.DERBitString}</li>\n * <li>0x04 {@link KJUR.asn1.DEROctetString}</li>\n * <li>0x05 {@link KJUR.asn1.DERNull}</li>\n * <li>0x06 {@link KJUR.asn1.DERObjectIdentifier}</li>\n * <li>0x0a {@link KJUR.asn1.DEREnumerated}</li>\n * <li>0x0c {@link KJUR.asn1.DERUTF8String}</li>\n * <li>0x12 {@link KJUR.asn1.DERNumericString}</li>\n * <li>0x13 {@link KJUR.asn1.DERPrintableString}</li>\n * <li>0x14 {@link KJUR.asn1.DERTeletexString}</li>\n * <li>0x16 {@link KJUR.asn1.DERIA5String}</li>\n * <li>0x17 {@link KJUR.asn1.DERUTCTime}</li>\n * <li>0x18 {@link KJUR.asn1.DERGeneralizedTime}</li>\n * <li>0x30 {@link KJUR.asn1.DERSequence}</li>\n * <li>0x31 {@link KJUR.asn1.DERSet}</li>\n * </ul>\n * <h4>OTHER ASN.1 CLASSES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.ASN1Object}</li>\n * <li>{@link KJUR.asn1.DERAbstractString}</li>\n * <li>{@link KJUR.asn1.DERAbstractTime}</li>\n * <li>{@link KJUR.asn1.DERAbstractStructured}</li>\n * <li>{@link KJUR.asn1.DERTaggedObject}</li>\n * </ul>\n * <h4>SUB NAME SPACES</h4>\n * <ul>\n * <li>{@link KJUR.asn1.cades} - CAdES long term signature format</li>\n * <li>{@link KJUR.asn1.cms} - Cryptographic Message Syntax</li>\n * <li>{@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)</li>\n * <li>{@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format</li>\n * <li>{@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL</li>\n * </ul>\n * </p>\n * NOTE: Please ignore method summary and document of this namespace.\n * This caused by a bug of jsdoc2.\n * @name KJUR.asn1\n * @namespace\n */\nif (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1)\n KJUR.asn1 = {};\n/**\n * ASN1 utilities class\n * @name KJUR.asn1.ASN1Util\n * @class ASN1 utilities class\n * @since asn1 1.0.2\n */\nKJUR.asn1.ASN1Util = new function () {\n this.integerToByteHex = function (i) {\n var h = i.toString(16);\n if ((h.length % 2) == 1)\n h = '0' + h;\n return h;\n };\n this.bigIntToMinTwosComplementsHex = function (bigIntegerValue) {\n var h = bigIntegerValue.toString(16);\n if (h.substr(0, 1) != '-') {\n if (h.length % 2 == 1) {\n h = '0' + h;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n h = '00' + h;\n }\n }\n }\n else {\n var hPos = h.substr(1);\n var xorLen = hPos.length;\n if (xorLen % 2 == 1) {\n xorLen += 1;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n xorLen += 2;\n }\n }\n var hMask = '';\n for (var i = 0; i < xorLen; i++) {\n hMask += 'f';\n Line truncated
/***/ }), /***/
}),
/***/ "./lib/lib/jsrsasign/yahoo.js": /***/
"./lib/lib/jsrsasign/yahoo.js":
/*!************************************!*\ /*!************************************!*\
!*** ./lib/lib/jsrsasign/yahoo.js ***! !*** ./lib/lib/jsrsasign/yahoo.js ***!
\************************************/ \************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { /***/
((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict"; "use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"YAHOO\": () => (/* binding */ YAHOO)\n/* harmony export */ });\n/*!\nCopyright (c) 2011, Yahoo! Inc. All rights reserved.\nCode licensed under the BSD License:\nhttp://developer.yahoo.com/yui/license.html\nversion: 2.9.0\n*/\nvar YAHOO = {};\nYAHOO.lang = {\n /**\n * Utility to set up the prototype, constructor and superclass properties to\n * support an inheritance strategy that can chain constructors and methods.\n * Static members will not be inherited.\n *\n * @method extend\n * @static\n * @param {Function} subc the object to modify\n * @param {Function} superc the object to inherit\n * @param {Object} overrides additional properties/methods to add to the\n * subclass prototype. These will override the\n * matching items obtained from the superclass\n * if present.\n */\n extend: function (subc, superc, overrides) {\n if (!superc || !subc) {\n throw new Error(\"YAHOO.lang.extend failed, please check that \" +\n \"all dependencies are included.\");\n }\n var F = function () { };\n F.prototype = superc.prototype;\n subc.prototype = new F();\n subc.prototype.constructor = subc;\n subc.superclass = superc.prototype;\n if (superc.prototype.constructor == Object.prototype.constructor) {\n superc.prototype.constructor = superc;\n }\n if (overrides) {\n var i;\n for (i in overrides) {\n subc.prototype[i] = overrides[i];\n }\n /*\n * IE will not enumerate native functions in a derived object even if the\n * function was overridden. This is a workaround for specific functions\n * we care about on the Object prototype.\n * @property _IEEnumFix\n * @param {Function} r the object to receive the augmentation\n * @param {Function} s the object that supplies the properties to augment\n * @static\n * @private\n */\n var _IEEnumFix = function () { }, ADD = [\"toString\", \"valueOf\"];\n try {\n if (/MSIE/.test(navigator.userAgent)) {\n _IEEnumFix = function (r, s) {\n for (i = 0; i < ADD.length; i = i + 1) {\n var fname = ADD[i], f = s[fname];\n if (typeof f === 'function' && f != Object.prototype[fname]) {\n r[fname] = f;\n }\n }\n };\n }\n }\n catch (ex) { }\n ;\n _IEEnumFix(subc.prototype, overrides);\n }\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsrsasign/yahoo.js?"); eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"YAHOO\": () => (/* binding */ YAHOO)\n/* harmony export */ });\n/*!\nCopyright (c) 2011, Yahoo! Inc. All rights reserved.\nCode licensed under the BSD License:\nhttp://developer.yahoo.com/yui/license.html\nversion: 2.9.0\n*/\nvar YAHOO = {};\nYAHOO.lang = {\n /**\n * Utility to set up the prototype, constructor and superclass properties to\n * support an inheritance strategy that can chain constructors and methods.\n * Static members will not be inherited.\n *\n * @method extend\n * @static\n * @param {Function} subc the object to modify\n * @param {Function} superc the object to inherit\n * @param {Object} overrides additional properties/methods to add to the\n * subclass prototype. These will override the\n * matching items obtained from the superclass\n * if present.\n */\n extend: function (subc, superc, overrides) {\n if (!superc || !subc) {\n throw new Error(\"YAHOO.lang.extend failed, please check that \" +\n \"all dependencies are included.\");\n }\n var F = function () { };\n F.prototype = superc.prototype;\n subc.prototype = new F();\n subc.prototype.constructor = subc;\n subc.superclass = superc.prototype;\n if (superc.prototype.constructor == Object.prototype.constructor) {\n superc.prototype.constructor = superc;\n }\n if (overrides) {\n var i;\n for (i in overrides) {\n subc.prototype[i] = overrides[i];\n }\n /*\n * IE will not enumerate native functions in a derived object even if the\n * function was overridden. This is a workaround for specific functions\n * we care about on the Object prototype.\n * @property _IEEnumFix\n * @param {Function} r the object to receive the augmentation\n * @param {Function} s the object that supplies the properties to augment\n * @static\n * @private\n */\n var _IEEnumFix = function () { }, ADD = [\"toString\", \"valueOf\"];\n try {\n if (/MSIE/.test(navigator.userAgent)) {\n _IEEnumFix = function (r, s) {\n for (i = 0; i < ADD.length; i = i + 1) {\n var fname = ADD[i], f = s[fname];\n if (typeof f === 'function' && f != Object.prototype[fname]) {\n r[fname] = f;\n }\n }\n };\n }\n }\n catch (ex) { }\n ;\n _IEEnumFix(subc.prototype, overrides);\n }\n }\n};\n\n\n//# sourceURL=webpack://JSEncrypt/./lib/lib/jsrsasign/yahoo.js?");
/***/ }), /***/
}),
/***/ "./node_modules/process/browser.js": /***/
"./node_modules/process/browser.js":
/*!*****************************************!*\ /*!*****************************************!*\
!*** ./node_modules/process/browser.js ***! !*** ./node_modules/process/browser.js ***!
\*****************************************/ \*****************************************/
/***/ ((module) => { /***/
((module) => {
eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess Line truncated eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess Line truncated
/***/ }) /***/
})
/******/ }); /******/
});
/************************************************************************/ /************************************************************************/
/******/ // The module cache /******/ // The module cache
/******/ var __webpack_module_cache__ = {}; /******/
var __webpack_module_cache__ = {};
/******/ /******/
/******/ // The require function /******/ // The require function
/******/ function __webpack_require__(moduleId) { /******/
function __webpack_require__(moduleId) {
/******/ // Check if module is in cache /******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/
/******/ if (cachedModule !== undefined) { var cachedModule = __webpack_module_cache__[moduleId];
/******/ return cachedModule.exports; /******/
/******/ } if (cachedModule !== undefined) {
/******/
return cachedModule.exports;
/******/
}
/******/ // Create a new module (and put it into the cache) /******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = { /******/
var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed /******/ // no module.id needed
/******/ // no module.loaded needed /******/ // no module.loaded needed
/******/ exports: {} /******/
/******/ }; exports: {}
/******/
};
/******/ /******/
/******/ // Execute the module function /******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ /******/
/******/ // Return the exports of the module /******/ // Return the exports of the module
/******/ return module.exports; /******/
/******/ } return module.exports;
/******/
}
/******/ /******/
/************************************************************************/ /************************************************************************/
/******/ /* webpack/runtime/define property getters */ /******/
/******/ (() => { /* webpack/runtime/define property getters */
/******/
(() => {
/******/ // define getter functions for harmony exports /******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/ /******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */ __webpack_require__.d = (exports, definition) => {
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/ /******/
/******/ /* webpack/runtime/make namespace object */ for (var key in definition) {
/******/ (() => { /******/
if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/
Object.defineProperty(exports, key, {
enumerable: true,
get: definition[key]
});
/******/
}
/******/
}
/******/
};
/******/
})();
/******/
/******/
/* webpack/runtime/hasOwnProperty shorthand */
/******/
(() => {
/******/
__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/
})();
/******/
/******/
/* webpack/runtime/make namespace object */
/******/
(() => {
/******/ // define __esModule on exports /******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => { /******/
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { __webpack_require__.r = (exports) => {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/
/******/ } if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/
/******/ }; Object.defineProperty(exports, Symbol.toStringTag, {
/******/ })(); value: 'Module'
});
/******/
}
/******/
Object.defineProperty(exports, '__esModule', {
value: true
});
/******/
};
/******/
})();
/******/ /******/
/************************************************************************/ /************************************************************************/
/******/ /******/
/******/ // startup /******/ // startup
/******/ // Load entry module and return exports /******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval devtool is used. /******/ // This entry module can't be inlined because the eval devtool is used.
/******/ var __webpack_exports__ = __webpack_require__("./lib/index.js");
/******/ __webpack_exports__ = __webpack_exports__["default"];
/******/ /******/
/******/ return __webpack_exports__; var __webpack_exports__ = __webpack_require__("./lib/index.js");
/******/ })() /******/
; __webpack_exports__ = __webpack_exports__["default"];
/******/
/******/
return __webpack_exports__;
/******/
})();
}); });
+119 -47
View File
@@ -2,24 +2,34 @@
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) : typeof define === 'function' && define.amd ? define(factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.JSON5 = factory()); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.JSON5 = factory());
}(this, (function () { 'use strict'; }(this, (function() {
'use strict';
function createCommonjsModule(fn, module) { function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports; return module = {
exports: {}
}, fn(module, module.exports), module.exports;
} }
var _global = createCommonjsModule(function(module) { var _global = createCommonjsModule(function(module) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math var global = module.exports = typeof window != 'undefined' && window.Math == Math ?
? window : typeof self != 'undefined' && self.Math == Math ? self window : typeof self != 'undefined' && self.Math == Math ? self
// eslint-disable-next-line no-new-func // eslint-disable-next-line no-new-func
: Function('return this')(); :
if (typeof __g == 'number') { __g = global; } // eslint-disable-line no-undef Function('return this')();
if (typeof __g == 'number') {
__g = global;
} // eslint-disable-line no-undef
}); });
var _core = createCommonjsModule(function(module) { var _core = createCommonjsModule(function(module) {
var core = module.exports = { version: '2.6.5' }; var core = module.exports = {
if (typeof __e == 'number') { __e = core; } // eslint-disable-line no-undef version: '2.6.5'
};
if (typeof __e == 'number') {
__e = core;
} // eslint-disable-line no-undef
}); });
var _core_1 = _core.version; var _core_1 = _core.version;
@@ -28,7 +38,9 @@
}; };
var _anObject = function(it) { var _anObject = function(it) {
if (!_isObject(it)) { throw TypeError(it + ' is not an object!'); } if (!_isObject(it)) {
throw TypeError(it + ' is not an object!');
}
return it; return it;
}; };
@@ -42,7 +54,11 @@
// Thank's IE8 for his funny defineProperty // Thank's IE8 for his funny defineProperty
var _descriptors = !_fails(function() { var _descriptors = !_fails(function() {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; return Object.defineProperty({}, 'a', {
get: function() {
return 7;
}
}).a != 7;
}); });
var document = _global.document; var document = _global.document;
@@ -53,7 +69,11 @@
}; };
var _ie8DomDefine = !_descriptors && !_fails(function() { var _ie8DomDefine = !_descriptors && !_fails(function() {
return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7; return Object.defineProperty(_domCreate('div'), 'a', {
get: function() {
return 7;
}
}).a != 7;
}); });
// 7.1.1 ToPrimitive(input [, PreferredType]) // 7.1.1 ToPrimitive(input [, PreferredType])
@@ -61,11 +81,19 @@
// instead of the ES6 spec version, we didn't implement @@toPrimitive case // instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string // and the second argument - flag - preferred type is a string
var _toPrimitive = function(it, S) { var _toPrimitive = function(it, S) {
if (!_isObject(it)) { return it; } if (!_isObject(it)) {
return it;
}
var fn, val; var fn, val;
if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) { return val; } if (S && typeof(fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) {
if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) { return val; } return val;
if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) { return val; } }
if (typeof(fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) {
return val;
}
if (!S && typeof(fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) {
return val;
}
throw TypeError("Can't convert object to primitive value"); throw TypeError("Can't convert object to primitive value");
}; };
@@ -75,11 +103,18 @@
_anObject(O); _anObject(O);
P = _toPrimitive(P, true); P = _toPrimitive(P, true);
_anObject(Attributes); _anObject(Attributes);
if (_ie8DomDefine) { try { if (_ie8DomDefine) {
try {
return dP(O, P, Attributes); return dP(O, P, Attributes);
} catch (e) { /* empty */ } } } catch (e) {
if ('get' in Attributes || 'set' in Attributes) { throw TypeError('Accessors not supported!'); } /* empty */ }
if ('value' in Attributes) { O[P] = Attributes.value; } }
if ('get' in Attributes || 'set' in Attributes) {
throw TypeError('Accessors not supported!');
}
if ('value' in Attributes) {
O[P] = Attributes.value;
}
return O; return O;
}; };
@@ -143,9 +178,15 @@
(module.exports = function(O, key, val, safe) { (module.exports = function(O, key, val, safe) {
var isFunction = typeof val == 'function'; var isFunction = typeof val == 'function';
if (isFunction) { _has(val, 'name') || _hide(val, 'name', key); } if (isFunction) {
if (O[key] === val) { return; } _has(val, 'name') || _hide(val, 'name', key);
if (isFunction) { _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); } }
if (O[key] === val) {
return;
}
if (isFunction) {
_has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
}
if (O === _global) { if (O === _global) {
O[key] = val; O[key] = val;
} else if (!safe) { } else if (!safe) {
@@ -163,7 +204,9 @@
}); });
var _aFunction = function(it) { var _aFunction = function(it) {
if (typeof it != 'function') { throw TypeError(it + ' is not a function!'); } if (typeof it != 'function') {
throw TypeError(it + ' is not a function!');
}
return it; return it;
}; };
@@ -171,15 +214,20 @@
var _ctx = function(fn, that, length) { var _ctx = function(fn, that, length) {
_aFunction(fn); _aFunction(fn);
if (that === undefined) { return fn; } if (that === undefined) {
return fn;
}
switch (length) { switch (length) {
case 1: return function (a) { case 1:
return function(a) {
return fn.call(that, a); return fn.call(that, a);
}; };
case 2: return function (a, b) { case 2:
return function(a, b) {
return fn.call(that, a, b); return fn.call(that, a, b);
}; };
case 3: return function (a, b, c) { case 3:
return function(a, b, c) {
return fn.call(that, a, b, c); return fn.call(that, a, b, c);
}; };
} }
@@ -200,7 +248,9 @@
var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {}); var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
var key, own, out, exp; var key, own, out, exp;
if (IS_GLOBAL) { source = name; } if (IS_GLOBAL) {
source = name;
}
for (key in source) { for (key in source) {
// contains in native // contains in native
own = !IS_FORCED && target && target[key] !== undefined; own = !IS_FORCED && target && target[key] !== undefined;
@@ -209,10 +259,16 @@
// bind timers to global for call from export context // bind timers to global for call from export context
exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out; exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
// extend global // extend global
if (target) { _redefine(target, key, out, type & $export.U); } if (target) {
_redefine(target, key, out, type & $export.U);
}
// export // export
if (exports[key] != out) { _hide(exports, key, exp); } if (exports[key] != out) {
if (IS_PROTO && expProto[key] != out) { expProto[key] = out; } _hide(exports, key, exp);
}
if (IS_PROTO && expProto[key] != out) {
expProto[key] = out;
}
} }
}; };
_global.core = _core; _global.core = _core;
@@ -236,7 +292,9 @@
// 7.2.1 RequireObjectCoercible(argument) // 7.2.1 RequireObjectCoercible(argument)
var _defined = function(it) { var _defined = function(it) {
if (it == undefined) { throw TypeError("Can't call method on " + it); } if (it == undefined) {
throw TypeError("Can't call method on " + it);
}
return it; return it;
}; };
@@ -248,11 +306,13 @@
var i = _toInteger(pos); var i = _toInteger(pos);
var l = s.length; var l = s.length;
var a, b; var a, b;
if (i < 0 || i >= l) { return TO_STRING ? '' : undefined; } if (i < 0 || i >= l) {
return TO_STRING ? '' : undefined;
}
a = s.charCodeAt(i); a = s.charCodeAt(i);
return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ?
? TO_STRING ? s.charAt(i) : a TO_STRING ? s.charAt(i) : a :
: TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
}; };
}; };
@@ -288,12 +348,15 @@
var code; var code;
while (aLen > i) { while (aLen > i) {
code = +arguments$1[i++]; code = +arguments$1[i++];
if (_toAbsoluteIndex(code, 0x10ffff) !== code) { throw RangeError(code + ' is not a valid code point'); } if (_toAbsoluteIndex(code, 0x10ffff) !== code) {
res.push(code < 0x10000 throw RangeError(code + ' is not a valid code point');
? fromCharCode(code) }
: fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) res.push(code < 0x10000 ?
fromCharCode(code) :
fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
); );
} return res.join(''); }
return res.join('');
} }
}); });
@@ -377,7 +440,9 @@
} while (token.type !== 'eof') } while (token.type !== 'eof')
if (typeof reviver === 'function') { if (typeof reviver === 'function') {
return internalize({'': root}, '', reviver) return internalize({
'': root
}, '', reviver)
} }
return root return root
@@ -1517,7 +1582,9 @@
gap = space.substr(0, 10); gap = space.substr(0, 10);
} }
return serializeProperty('', {'': value}) return serializeProperty('', {
'': value
})
function serializeProperty(key, holder) { function serializeProperty(key, holder) {
var value = holder[key]; var value = holder[key];
@@ -1542,9 +1609,12 @@
} }
switch (value) { switch (value) {
case null: return 'null' case null:
case true: return 'true' return 'null'
case false: return 'false' case true:
return 'true'
case false:
return 'false'
} }
if (typeof value === 'string') { if (typeof value === 'string') {
@@ -1615,7 +1685,9 @@
product += c; product += c;
} }
var quoteChar = quote || Object.keys(quotes).reduce(function (a, b) { return (quotes[a] < quotes[b]) ? a : b; }); var quoteChar = quote || Object.keys(quotes).reduce(function(a, b) {
return (quotes[a] < quotes[b]) ? a : b;
});
product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]); product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]);
+5858 -2
View File
File diff suppressed because it is too large. Load diff
+1439 -2
View File
File diff suppressed because it is too large. Load diff
+146
View File
@@ -0,0 +1,146 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import sys
sys.path.append('..')
from base.spider import Spider
import requests
class Spider(Spider):
def init(self, extend=""):
pass
def getName(self):
return "hitv"
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
def homeContent(self, filter):
result = {}
cateManual = {
# "直播": "live",
'排行榜': 'rank',
"电影": "1",
"剧集": "2",
"综艺": "3",
"动画": "4",
"短片": "5"
}
classes = []
for k in cateManual:
classes.append({
'type_name': k,
'type_id': cateManual[k]
})
result['class'] = classes
return result
host = "https://wys.upfuhn.com"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/80.0.3987.149 Safari/537.36"
}
def list(self, list):
videos = []
for it in list:
videos.append({
"vod_id": it['video_site_id'],
"vod_name": it['video_name'],
"vod_pic": it['video_horizontal_url'] or it['video_vertical_url'],
"vod_remarks": it['newest_series_num'],
"vod_year": it['years'],
})
return videos
def homeVideoContent(self):
url = f'{self.host}/v1/ys_video_sites/hot?t=1'
data = requests.get(url, headers=self.headers).json()
videos = self.list(data['data']['data'])
result = {'list': videos}
return result
def categoryContent(self, tid, pg, filter, extend):
path = f'/v1/ys_video_sites?t={tid}&s_t=0&a&y&o=0&ps=21&pn={pg}'
rank = False
if tid == 'rank':
if pg == 1:
path = f'/v1/ys_video_sites/ranking'
rank = True
else:
path = ''
# elif tid == 'live' and pg == 1:
# path = f'/v1/ys_live_tvs'
videos = []
result = {}
try:
data = requests.get(self.host + path, headers=self.headers).json()
if rank:
for video in data['data']:
videos.extend(data['data'][video])
else:
videos = data['data']['data']
result = {}
result['list'] = self.list(videos)
result['page'] = pg
result['pagecount'] = 9999
result['limit'] = 90
result['total'] = 999999
except:
result['list'] = []
return result
def detailContent(self, ids):
tid = ids[0]
url = f'{self.host}/v1/ys_video_series/by_vid/{tid}'
data = requests.get(url, headers=self.headers).json()
data1 = data['data']['ys_video_site']
urls = []
for it in data['data']['data']:
urls.append(it['series_num'] + '$' + it['video_url'])
vod = {
'vod_name': data1['video_name'],
'type_name': data1['tag'],
'vod_year': data1['years'],
'vod_area': data1['area'],
'vod_director': data1['main_actor'],
'vod_content': data1['video_desc'],
'vod_play_from': '嗨皮在线',
'vod_play_url': '#'.join(urls),
}
result = {
'list': [
vod
]
}
return result
def searchContent(self, key, quick, pg=1):
url = f'{self.host}/v1/ys_video_sites/search?s={key}&o=0&ps=200&pn={pg}'
data = requests.get(url, headers=self.headers).json()
videos = data['data']['video_sites']
if data['data']['first_video_series'] is not None:
videos = [data['data']['first_video_series']] + videos
result = {}
result['list'] = self.list(videos)
result['page'] = pg
return result
def playerContent(self, flag, id, vipFlags):
result = {
'url': id,
'parse': 0,
'header': self.headers
}
return result
def localProxy(self, param):
pass
+31 -14
View File
@@ -31,7 +31,7 @@ let common_lazy = `js:
url: url, url: url,
}; };
} else { } else {
input; input = url && url.startsWith('http') && tellIsJx(url) ? {parse:0,jx:1,url:url}:input;
}`; }`;
// 默认嗅探播放 // 默认嗅探播放
@@ -113,7 +113,8 @@ function getMubans() {
tab_text: 'div--small&&Text', tab_text: 'div--small&&Text',
}, },
搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text', 搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
}, mxone5: { },
mxone5: {
title: '', title: '',
host: '', host: '',
url: '/show/fyclass--------fypage---.html', url: '/show/fyclass--------fypage---.html',
@@ -138,7 +139,8 @@ function getMubans() {
tab_text: 'div--small&&Text', tab_text: 'div--small&&Text',
}, },
搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href', 搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
}, 首图: { },
首图: {
title: '', title: '',
host: '', host: '',
url: '/vodshow/fyclass--------fypage---/', url: '/vodshow/fyclass--------fypage---/',
@@ -166,7 +168,8 @@ function getMubans() {
lists: '.myui-content__list:eq(#id) li', lists: '.myui-content__list:eq(#id) li',
}, },
搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text', 搜索: '#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
}, 首图2: { },
首图2: {
title: '', title: '',
host: '', host: '',
url: '/list/fyclass-fypage.html', url: '/list/fyclass-fypage.html',
@@ -196,7 +199,8 @@ function getMubans() {
lists: '.stui-content__playlist:eq(#id) li', lists: '.stui-content__playlist:eq(#id) li',
}, },
搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text', 搜索: 'ul.stui-vodlist__media,ul.stui-vodlist,#searchList li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href;.detail&&Text',
}, 默认: { },
默认: {
title: '', title: '',
host: '', host: '',
url: '', url: '',
@@ -230,7 +234,8 @@ function getMubans() {
list_url: 'a&&href', list_url: 'a&&href',
}, },
搜索: '列表;标题;图片;描述;链接;详情', 搜索: '列表;标题;图片;描述;链接;详情',
}, vfed: { },
vfed: {
title: '', title: '',
host: '', host: '',
url: '/index.php/vod/show/id/fyclass/page/fypage.html', url: '/index.php/vod/show/id/fyclass/page/fypage.html',
@@ -257,7 +262,8 @@ function getMubans() {
lists: '.fed-play-item:eq(#id)&&ul:eq(1)&&li', lists: '.fed-play-item:eq(#id)&&ul:eq(1)&&li',
}, },
搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text', 搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
}, 海螺3: { },
海螺3: {
title: '', title: '',
host: '', host: '',
searchUrl: '/v_search/**----------fypage---.html', searchUrl: '/v_search/**----------fypage---.html',
@@ -287,7 +293,8 @@ function getMubans() {
searchable: 2, //是否启用全局搜索, searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索, quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选, filterable: 0, //是否启用分类筛选,
}, 海螺2: { },
海螺2: {
title: '', title: '',
host: '', host: '',
searchUrl: '/index.php/vod/search/page/fypage/wd/**/', searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
@@ -315,7 +322,8 @@ function getMubans() {
searchable: 2, //是否启用全局搜索, searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索, quickSearch: 0, //是否启用快速搜索,
filterable: 0, //是否启用分类筛选, filterable: 0, //是否启用分类筛选,
}, 短视: { },
短视: {
title: '', title: '',
host: '', // homeUrl:'/', host: '', // homeUrl:'/',
url: '/channel/fyclass-fypage.html', url: '/channel/fyclass-fypage.html',
@@ -343,7 +351,8 @@ function getMubans() {
lists: '.player:eq(#id) li', lists: '.player:eq(#id) li',
}, },
搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href', 搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
}, 短视2: { },
短视2: {
title: '', title: '',
host: '', host: '',
class_name: '电影&电视剧&综艺&动漫', class_name: '电影&电视剧&综艺&动漫',
@@ -351,7 +360,9 @@ function getMubans() {
searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50', searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
searchable: 2, searchable: 2,
quickSearch: 0, quickSearch: 0,
headers: {'User-Agent': 'MOBILE_UA'}, headers: {
'User-Agent': 'MOBILE_UA'
},
url: '/index.php/api/vod#type=fyclass&page=fypage', url: '/index.php/api/vod#type=fyclass&page=fypage',
filterable: 0, //是否启用分类筛选, filterable: 0, //是否启用分类筛选,
filter_url: '', filter_url: '',
@@ -373,7 +384,8 @@ function getMubans() {
lists: '.anthology-list-box:eq(#id) li', lists: '.anthology-list-box:eq(#id) li',
}, },
搜索: 'json:list;name;pic;;id', 搜索: 'json:list;name;pic;;id',
}, 采集1: { },
采集1: {
title: '', title: '',
host: '', host: '',
homeTid: '13', homeTid: '13',
@@ -381,7 +393,9 @@ function getMubans() {
detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid', detailUrl: '/api.php/provide/vod/?ac=detail&ids=fyid',
searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage', searchUrl: '/api.php/provide/vod/?wd=**&pg=fypage',
url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass', url: '/api.php/provide/vod/?ac=detail&pg=fypage&t=fyclass',
headers: {'User-Agent': 'MOBILE_UA'}, headers: {
'User-Agent': 'MOBILE_UA'
},
timeout: 5000, // class_name: '电影&电视剧&综艺&动漫', timeout: 5000, // class_name: '电影&电视剧&综艺&动漫',
// class_url: '1&2&3&4', // class_url: '1&2&3&4',
// class_parse:'js:let html=request(input);input=JSON.parse(html).class;', // class_parse:'js:let html=request(input);input=JSON.parse(html).class;',
@@ -409,4 +423,7 @@ function getMubans() {
var mubanDict = getMubans(); var mubanDict = getMubans();
var muban = getMubans(); var muban = getMubans();
export default {muban, getMubans}; export default {
muban,
getMubans
};
+301
View File
@@ -0,0 +1,301 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import sys
from urllib.parse import urlparse
sys.path.append("..")
import re
import hashlib
import hmac
import random
import string
from Crypto.Util.Padding import unpad
from concurrent.futures import ThreadPoolExecutor
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5, AES
from base64 import b64encode, b64decode
import json
import time
from base.spider import Spider
class Spider(Spider):
def init(self, extend=""):
self.device = self.device_id()
self.host = self.gethost()
pass
def getName(self):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def action(self, action):
pass
def destroy(self):
pass
def homeContent(self, filter):
result = {}
filters = {}
classes = []
bba = self.url()
data = self.fetch(f"{self.host}/api/v1/app/config?pack={bba[0]}&signature={bba[1]}", headers=self.header()).text
data1 = self.aes(data)
dy = {"class": "类型", "area": "地区", "lang": "语言", "year": "年份", "letter": "字母", "by": "排序",
"sort": "排序"}
data1['data']['movie_screen']['sort'].pop(0)
for item in data1['data']['movie_screen']['sort']:
item['n'] = item.pop('name')
item['v'] = item.pop('value')
for item in data1['data']['movie_screen']['filter']:
has_non_empty_field = False
classes.append({"type_name": item["name"], "type_id": str(item["id"])})
for key in dy:
if key in item and item[key]:
has_non_empty_field = True
break
if has_non_empty_field:
filters[str(item["id"])] = []
filters[str(item["id"])].append(
{"key": 'sort', "name": '排序', "value": data1['data']['movie_screen']['sort']})
for dkey in item:
if dkey in dy and item[dkey]:
item[dkey].pop(0)
value_array = [
{"n": value.strip(), "v": value.strip()}
for value in item[dkey]
if value.strip() != ""
]
filters[str(item["id"])].append(
{"key": dkey, "name": dy[dkey], "value": value_array}
)
result["class"] = classes
result["filters"] = filters
return result
def homeVideoContent(self):
bba = self.url()
url = f'{self.host}/api/v1/movie/index_recommend?pack={bba[0]}&signature={bba[1]}'
data = self.fetch(url, headers=self.header()).json()
videos = []
for item in data['data']:
if len(item['list']) > 0:
for it in item['list']:
try:
videos.append(self.voides(it))
except Exception as e:
continue
result = {"list": videos}
return result
def categoryContent(self, tid, pg, filter, extend):
body = {"type_id": tid, "sort": extend.get("sort", "by_default"), "class": extend.get("class", "类型"),
"area": extend.get("area", "地区"), "year": extend.get("year", "年份"), "page": str(pg),
"pageSize": "21"}
result = {}
list = []
bba = self.url(body)
url = f"{self.host}/api/v1/movie/screen/list?pack={bba[0]}&signature={bba[1]}"
data = self.fetch(url, headers=self.header()).json()['data']['list']
for item in data:
list.append(self.voides(item))
result["list"] = list
result["page"] = pg
result["pagecount"] = 9999
result["limit"] = 90
result["total"] = 999999
return result
def detailContent(self, ids):
body = {"id": ids[0]}
bba = self.url(body)
url = f'{self.host}/api/v1/movie/detail?pack={bba[0]}&signature={bba[1]}'
data = self.fetch(url, headers=self.header()).json()['data']
video = {'vod_name': data.get('name'), 'type_name': data.get('type_name'), 'vod_year': data.get('year'),
'vod_area': data.get('area'), 'vod_remarks': data.get('dynami'), 'vod_content': data.get('content')}
play = []
names = []
tasks = []
for itt in data["play_from"]:
name = itt["name"]
a = []
if len(itt["list"]) > 0:
names.append(name)
play.append(self.playeach(itt['list']))
else:
tasks.append({"movie_id": ids[0], "from_code": itt["code"]})
names.append(name)
if tasks:
with ThreadPoolExecutor(max_workers=len(tasks)) as executor:
results = executor.map(self.playlist, tasks)
for result in results:
if result:
play.append(result)
else:
play.append("")
video["vod_play_from"] = "$$$".join(names)
video["vod_play_url"] = "$$$".join(play)
result = {"list": [video]}
return result
def searchContent(self, key, quick, pg=1):
body = {"keyword": key, "sort": "", "type_id": "0", "page": str(pg), "pageSize": "10",
"res_type": "by_movie_name"}
bba = self.url(body)
url = f"{self.host}/api/v1/movie/search?pack={bba[0]}&signature={bba[1]}"
data = self.fetch(url, headers=self.header()).json()['data'].get('list')
videos = []
for it in data:
try:
videos.append(self.voides(it))
except Exception as e:
continue
result = {"list": videos, "page": pg}
return result
def playerContent(self, flag, id, vipFlags):
url = id
if not re.search(r"\.m3u8|\.mp4", url):
try:
data = json.loads(b64decode(id.encode('utf-8')).decode('utf-8'))
bba = self.url(data)
data2 = self.fetch(f"{self.host}/api/v1/movie_addr/parse_url?pack={bba[0]}&signature={bba[1]}",
headers=self.header()).json()['data']
url = data2.get('play_url') or data2.get('download_url')
except Exception as e:
pass
if re.search(r'\.jpg|\.png|\.jpeg', url):
url = self.Mproxy(url)
result = {}
result["parse"] = 0
result["url"] = url
result["header"] = {'user-agent': 'okhttp/4.9.2'}
return result
def localProxy(self, param):
return self.Mlocal(param)
def Mproxy(self, url):
return self.getProxyUrl() + "&url=" + b64encode(url.encode('utf-8')).decode('utf-8') + "&type=m3u8"
def Mlocal(self, param,header=None):
url = self.d64(param["url"])
ydata = self.fetch(url, headers=header, allow_redirects=False)
data = ydata.content.decode('utf-8')
if ydata.headers.get('Location'):
url = ydata.headers['Location']
data = self.fetch(url, headers=header).content.decode('utf-8')
parsed_url = urlparse(url)
durl = parsed_url.scheme + "://" + parsed_url.netloc
lines = data.strip().split('\n')
for index, string in enumerate(lines):
if '#EXT' not in string and 'http' not in string:
last_slash_index = string.rfind('/')
lpath = string[:last_slash_index + 1]
lines[index] = durl + ('' if lpath.startswith('/') else '/') + lpath
data = '\n'.join(lines)
return [200, "application/vnd.apple.mpegur", data]
def device_id(self):
characters = string.ascii_lowercase + string.digits
random_string = ''.join(random.choices(characters, k=32))
return random_string
def gethost(self):
try:
url = 'https://dns.alidns.com/dns-query'
headers = {
'User-Agent': 'okhttp/4.9.2',
'Accept': 'application/dns-message'
}
params = {
'dns': 'AAABAAABAAAAAAAACWJmbTExYXM5ZgdmdXFpeXVuAmNuAAAcAAE'
}
response = self.fetch(url, headers=headers, params=params)
host=self.parse_dns_name(response.content, 12)
return f"https://{host}"
except:
return "https://bfm11as9f.fuqiyun.cn"
def parse_dns_name(self, data, offset):
parts = []
while True:
length = data[offset]
if length == 0:
break
offset += 1
parts.append(data[offset:offset + length].decode('utf-8'))
offset += length
return '.'.join(parts)
def header(self):
headers = {
'User-Agent': 'Android',
'Accept': 'application/prs.55App.v2+json',
'timestamp': str(int(time.time())),
'x-client-setting': '{"pure-mode":0}',
'x-client-uuid': '{"device_id":' + self.device + '}, "type":1,"brand":"Redmi", "model":"M2012K10C", "system_version":30, "sdk_version":"3.1.0.7"}',
'x-client-version': '3096 '
}
return headers
def url(self, id=None):
if not id:
id = {}
id["timestamp"] = str(int(time.time()))
public_key = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA02F/kPg5A2NX4qZ5JSns+bjhVMCC6JbTiTKpbgNgiXU+Kkorg6Dj76gS68gB8llhbUKCXjIdygnHPrxVHWfzmzisq9P9awmXBkCk74Skglx2LKHa/mNz9ivg6YzQ5pQFUEWS0DfomGBXVtqvBlOXMCRxp69oWaMsnfjnBV+0J7vHbXzUIkqBLdXSNfM9Ag5qdRDrJC3CqB65EJ3ARWVzZTTcXSdMW9i3qzEZPawPNPe5yPYbMZIoXLcrqvEZnRK1oak67/ihf7iwPJqdc+68ZYEmmdqwunOvRdjq89fQMVelmqcRD9RYe08v+xDxG9Co9z7hcXGTsUquMxkh29uNawIDAQAB'
encrypted_text = json.dumps(id)
public_key = RSA.import_key(b64decode(public_key))
cipher = PKCS1_v1_5.new(public_key)
encrypted_message = cipher.encrypt(encrypted_text.encode('utf-8'))
encrypted_message_base64 = b64encode(encrypted_message).decode('utf-8')
result = encrypted_message_base64.replace('+', '-').replace('/', '_').replace('=', '')
key = '635a580fcb5dc6e60caa39c31a7bde48'
sign = hmac.new(key.encode(), result.encode(), hashlib.md5).hexdigest()
return result, sign
def playlist(self, body):
try:
bba = self.url(body)
url = f'{self.host}/api/v1/movie_addr/list?pack={bba[0]}&signature={bba[1]}'
data = self.fetch(url, headers=self.header()).json()['data']
return self.playeach(data)
except Exception:
return []
def playeach(self, data):
play_urls = []
for it in data:
if re.search(r"mp4|m3u8", it["play_url"]):
play_urls.append(f"{it['episode_name']}${it['play_url']}")
else:
vd={"from_code": it['from_code'], "play_url": it['play_url'], "episode_id": it['episode_id'], "type": "play"}
play_urls.append(
f"{it['episode_name']}${b64encode(json.dumps(vd).encode('utf-8')).decode('utf-8')}"
)
return '#'.join(play_urls)
def voides(self, item):
if item['name'] or item['title']:
voide = {
"vod_id": item.get('id') or item.get('click'),
'vod_name': item.get('name') or item.get('title'),
'vod_pic': item.get('cover') or item.get('image'),
'vod_year': item.get('year') or item.get('label'),
'vod_remarks': item.get('dynamic') or item.get('sub_title')
}
return voide
def aes(self, text):
text = text.replace('-', '+').replace('_', '/') + '=='
key = b"e6d5de5fcc51f53d"
iv = b"2f13eef7dfc6c613"
cipher = AES.new(key, AES.MODE_CBC, iv)
pt = unpad(cipher.decrypt(b64decode(text)), AES.block_size).decode("utf-8")
return json.loads(pt)
+279
View File
@@ -0,0 +1,279 @@
# coding=utf-8
# !/usr/bin/python
# by嗷呜(finally)
import sys
import os
sys.path.append("..")
import re
import hashlib
import hmac
import random
import string
from Crypto.Util.Padding import unpad
from concurrent.futures import ThreadPoolExecutor
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5, AES
from base64 import b64encode, b64decode
import json
import time
from base.spider import Spider
class Spider(Spider):
def getName(self):
return "电影猎手"
def init(self, extend=""):
self.device = self.device_id()
self.host = self.gethost()
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def action(self, action):
pass
def destroy(self):
pass
t = str(int(time.time()))
def homeContent(self, filter):
result = {}
filters = {}
classes = []
bba = self.url()
data = self.fetch(f"{self.host}/api/v1/app/config?pack={bba[0]}&signature={bba[1]}", headers=self.header()).text
data1 = self.aes(data)
dy = {"class":"类型","area":"地区","lang":"语言","year":"年份","letter":"字母","by":"排序","sort":"排序"}
data1['data']['movie_screen']['sort'].pop(0)
for item in data1['data']['movie_screen']['sort']:
item['n'] = item.pop('name')
item['v'] = item.pop('value')
for item in data1['data']['movie_screen']['filter']:
has_non_empty_field = False
classes.append({"type_name": item["name"], "type_id": str(item["id"])})
for key in dy:
if key in item and item[key]:
has_non_empty_field = True
break
if has_non_empty_field:
filters[str(item["id"])] = []
filters[str(item["id"])].append(
{"key": 'sort', "name": '排序', "value": data1['data']['movie_screen']['sort']})
for dkey in item:
if dkey in dy and item[dkey]:
item[dkey].pop(0)
value_array = [
{"n": value.strip(), "v": value.strip()}
for value in item[dkey]
if value.strip() != ""
]
filters[str(item["id"])].append(
{"key": dkey, "name": dy[dkey], "value": value_array}
)
result["class"] = classes
result["filters"] = filters
return result
def homeVideoContent(self):
bba = self.url()
url = f'{self.host}/api/v1/movie/index_recommend?pack={bba[0]}&signature={bba[1]}'
data = self.fetch(url, headers=self.header()).json()
videos = []
for item in data['data']:
if len(item['list']) > 0:
for it in item['list']:
try:
videos.append(self.voides(it))
except Exception as e:
continue
result = {"list": videos}
return result
def categoryContent(self, tid, pg, filter, extend):
body = {"type_id": tid, "sort": extend.get("sort", "by_default"), "class": extend.get("class", "类型"),
"area": extend.get("area", "地区"), "year": extend.get("year", "年份"), "page": str(pg),
"pageSize": "21"}
result = {}
list = []
bba = self.url(body)
url = f"{self.host}/api/v1/movie/screen/list?pack={bba[0]}&signature={bba[1]}"
data = self.fetch(url, headers=self.header()).json()['data']['list']
for item in data:
list.append(self.voides(item))
result["list"] = list
result["page"] = pg
result["pagecount"] = 9999
result["limit"] = 90
result["total"] = 999999
return result
def detailContent(self, ids):
body = {"id": ids[0]}
bba = self.url(body)
url = f'{self.host}/api/v1/movie/detail?pack={bba[0]}&signature={bba[1]}'
data = self.fetch(url, headers=self.header()).json()['data']
video = {'vod_name': data.get('name'),'type_name': data.get('type_name'),'vod_year': data.get('year'),'vod_area': data.get('area'),'vod_remarks': data.get('dynami'),'vod_content': data.get('content')}
play = []
names = []
tasks = []
for itt in data["play_from"]:
name = itt["name"]
a = []
if len(itt["list"]) > 0:
names.append(name)
play.append(self.playeach(itt['list']))
else:
tasks.append({"movie_id": ids[0], "from_code": itt["code"]})
names.append(name)
if tasks:
with ThreadPoolExecutor(max_workers=len(tasks)) as executor:
results = executor.map(self.playlist, tasks)
for result in results:
if result:
play.append(result)
else:
play.append("")
video["vod_play_from"] = "$$$".join(names)
video["vod_play_url"] = "$$$".join(play)
result = {"list": [video]}
return result
def searchContent(self, key, quick, pg=1):
body = {"keyword": key, "sort": "", "type_id": "0", "page": str(pg), "pageSize": "10",
"res_type": "by_movie_name"}
bba = self.url(body)
url = f"{self.host}/api/v1/movie/search?pack={bba[0]}&signature={bba[1]}"
data = self.fetch(url, headers=self.header()).json()['data'].get('list')
videos = []
for it in data:
try:
videos.append(self.voides(it))
except Exception as e:
continue
result = {"list": videos, "page": pg}
return result
def playerContent(self, flag, id, vipFlags):
url = id
if "m3u8" not in url and "mp4" not in url:
try:
add = id.split('|||')
data = {"from_code": add[0], "play_url": add[1], "episode_id": add[2], "type": "play"}
bba = self.url(data)
data2 = self.fetch(f"{self.host}/api/v1/movie_addr/parse_url?pack={bba[0]}&signature={bba[1]}",
headers=self.header()).json()['data']
url = data2.get('play_url') or data2.get('download_url')
try:
url1 = self.fetch(url, headers=self.header(), allow_redirects=False).headers['Location']
if url1 and "http" in url1:
url = url1
except:
pass
except Exception as e:
pass
if '.jpg' in url or '.jpeg' in url or '.png' in url:
url = self.getProxyUrl() + "&url=" + b64encode(url.encode('utf-8')).decode('utf-8') + "&type=m3u8"
result = {}
result["parse"] = 0
result["url"] = url
result["header"] = {'user-agent': 'okhttp/4.9.2'}
return result
def localProxy(self, param):
url = b64decode(param["url"]).decode('utf-8')
durl = url[:url.rfind('/')]
data = self.fetch(url, headers=self.header()).content.decode("utf-8")
lines = data.strip().split('\n')
for index, string in enumerate(lines):
# if 'URI="' in string and 'http' not in string:
# lines[index] = index
# 暂时预留,貌似用不到
if '#EXT' not in string and 'http' not in string:
lines[index] = durl + ('' if string.startswith('/') else '/') + string
data = '\n'.join(lines)
return [200, "application/vnd.apple.mpegur", data]
def device_id(self):
characters = string.ascii_lowercase + string.digits
random_string = ''.join(random.choices(characters, k=32))
return random_string
def gethost(self):
headers = {
'User-Agent': 'okhttp/4.9.2',
'Connection': 'Keep-Alive',
}
response = self.fetch('https://app-site.ecoliving168.com/domain_v5.json', headers=headers).json()
url = response['api_service'].replace('/api/', '')
return url
def header(self):
headers = {
'User-Agent': 'Android',
'Accept': 'application/prs.55App.v2+json',
'timestamp': self.t,
'x-client-setting': '{"pure-mode":1}',
'x-client-uuid': '{"device_id":' + self.device + '}, "type":1,"brand":"Redmi", "model":"M2012K10C", "system_version":30, "sdk_version":"3.1.0.7"}',
'x-client-version': '3096 '
}
return headers
def url(self, id=None):
if not id:
id = {}
id["timestamp"] = self.t
public_key = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA02F/kPg5A2NX4qZ5JSns+bjhVMCC6JbTiTKpbgNgiXU+Kkorg6Dj76gS68gB8llhbUKCXjIdygnHPrxVHWfzmzisq9P9awmXBkCk74Skglx2LKHa/mNz9ivg6YzQ5pQFUEWS0DfomGBXVtqvBlOXMCRxp69oWaMsnfjnBV+0J7vHbXzUIkqBLdXSNfM9Ag5qdRDrJC3CqB65EJ3ARWVzZTTcXSdMW9i3qzEZPawPNPe5yPYbMZIoXLcrqvEZnRK1oak67/ihf7iwPJqdc+68ZYEmmdqwunOvRdjq89fQMVelmqcRD9RYe08v+xDxG9Co9z7hcXGTsUquMxkh29uNawIDAQAB'
encrypted_text = json.dumps(id)
public_key = RSA.import_key(b64decode(public_key))
cipher = PKCS1_v1_5.new(public_key)
encrypted_message = cipher.encrypt(encrypted_text.encode('utf-8'))
encrypted_message_base64 = b64encode(encrypted_message).decode('utf-8')
result = encrypted_message_base64.replace('+', '-').replace('/', '_').replace('=', '')
key = '635a580fcb5dc6e60caa39c31a7bde48'
sign = hmac.new(key.encode(), result.encode(), hashlib.md5).hexdigest()
return result, sign
def playlist(self, body):
try:
bba = self.url(body)
url = f'{self.host}/api/v1/movie_addr/list?pack={bba[0]}&signature={bba[1]}'
data = self.fetch(url, headers=self.header()).json()['data']
return self.playeach(data)
except Exception:
return []
def playeach(self,data):
play_urls = []
for it in data:
if re.search(r"mp4|m3u8", it["play_url"]):
play_urls.append(f"{it['episode_name']}${it['play_url']}")
else:
play_urls.append(
f"{it['episode_name']}${it['from_code']}|||{it['play_url']}|||{it['episode_id']}"
)
return '#'.join(play_urls)
def voides(self, item):
if item['name'] or item['title']:
voide = {
"vod_id": item.get('id') or item.get('click'),
'vod_name': item.get('name') or item.get('title'),
'vod_pic': item.get('cover') or item.get('image'),
'vod_year': item.get('year') or item.get('label'),
'vod_remarks': item.get('dynamic') or item.get('sub_title')
}
return voide
def aes(self, text):
text = text.replace('-', '+').replace('_', '/') + '=='
key = b"e6d5de5fcc51f53d"
iv = b"2f13eef7dfc6c613"
cipher = AES.new(key, AES.MODE_CBC, iv)
pt = unpad(cipher.decrypt(b64decode(text)), AES.block_size).decode("utf-8")
return json.loads(pt)
+93
View File
@@ -0,0 +1,93 @@
# -*- coding: utf-8 -*-
# by @嗷呜
import sys
sys.path.append('..')
from base.spider import Spider
class Spider(Spider):
def getName(self):
return "mp"
def init(self, extend=""):
pass
def isVideoFormat(self, url):
pass
def manualVideoCheck(self):
pass
def destroy(self):
pass
host = 'https://g.c494.com'
header = {
'User-Agent': 'Dart/2.10 (dart:io)',
'platform_version': 'RP1A.200720.011',
'version': '2.2.3',
'copyright': 'xiaogui',
'platform': 'android',
'client_name': '576O5p+P5b2x6KeG',
}
def homeContent(self, filter):
data = self.fetch(f'{self.host}/api.php/app/nav?token=', headers=self.header).json()
dy = {"class": "类型", "area": "地区", "lang": "语言", "year": "年份", "letter": "字母", "by": "排序",
"sort": "排序"}
filters = {}
classes = []
json_data = data["list"]
for item in json_data:
has_non_empty_field = False
jsontype_extend = item["type_extend"]
classes.append({"type_name": item["type_name"], "type_id": str(item["type_id"])})
for key in dy:
if key in jsontype_extend and jsontype_extend[key].strip() != "":
has_non_empty_field = True
break
if has_non_empty_field:
filters[str(item["type_id"])] = []
for dkey in jsontype_extend:
if dkey in dy and jsontype_extend[dkey].strip() != "":
values = jsontype_extend[dkey].split(",")
value_array = [{"n": value.strip(), "v": value.strip()} for value in values if
value.strip() != ""]
filters[str(item["type_id"])].append({"key": dkey, "name": dy[dkey], "value": value_array})
result = {}
result["class"] = classes
result["filters"] = filters
return result
def homeVideoContent(self):
rsp = self.fetch(f"{self.host}/api.php/app/index_video?token=", headers=self.header)
root = rsp.json()['list']
videos = [item for vodd in root for item in vodd['vlist']]
return {'list': videos}
def categoryContent(self, tid, pg, filter, extend):
parms = {"pg": pg, "tid": tid, "class": extend.get("class", ""), "area": extend.get("area", ""),
"lang": extend.get("lang", ""), "year": extend.get("year", ""), "token": ""}
data = self.fetch(f'{self.host}/api.php/app/video', params=parms, headers=self.header).json()
return data
def detailContent(self, ids):
parms = {"id": ids[0], "token": ""}
data = self.fetch(f'{self.host}/api.php/app/video_detail', params=parms, headers=self.header).json()
vod = data['data']
vod.pop('pause_advert_list', None)
vod.pop('init_advert_list', None)
vod.pop('vod_url_with_player', None)
return {"list": [vod]}
def searchContent(self, key, quick, pg='1'):
parms = {'pg': pg, 'text': key, 'token': ''}
data = self.fetch(f'{self.host}/api.php/app/search', params=parms, headers=self.header).json()
return data
def playerContent(self, flag, id, vipFlags):
return {"parse": 0, "url": id, "header": {'User-Agent': 'User-Agent: Lavf/58.12.100'}}
def localProxy(self, param):
pass
File diff suppressed because it is too large. Load diff
+238 -233
View File
File diff suppressed because it is too large. Load diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

-224
View File
@@ -1,224 +0,0 @@
globalThis.h_ost = 'http://mitu.jiajiayoutian.top/';
var key = CryptoJS.enc.Base64.parse("ZDAzMmMxMjg3NmJjNjg0OA==");
var iv = CryptoJS.enc.Base64.parse("ZDAzMmMxMjg3NmJjNjg0OA==");
globalThis.AES_Decrypt = function(word) {
try {
var decrypt = CryptoJS.AES.decrypt(word, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7,
});
const decryptedText = decrypt.toString(CryptoJS.enc.Utf8);
if (!decryptedText) {
throw new Error("解密后的内容为空");
}
return decryptedText;
} catch (e) {
console.error("解密失败:", e);
return null;
}
};
globalThis.AES_Encrypt = function(word) {
var encrypted = CryptoJS.AES.encrypt(word, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
};
globalThis.vod1 = function(t, pg) {
let html1 = request(h_ost + 'api.php/getappapi.index/typeFilterVodList', {
body: {
area: '全部',
year: '全部',
type_id: t,
page: pg,
sort: '最新',
lang: '全部',
class: '全部'
},
headers: {
'User-Agent': 'okhttp/3.14.9',
'Content-Type': 'application/x-www-form-urlencoded'
},
'method': 'POST'
}, true);
let html = JSON.parse(html1);
return (AES_Decrypt(html.data));
}
globalThis.vodids = function(ids) {
let html1 = fetch(h_ost + 'api.php/getappapi.index/vodDetail', {
method: 'POST',
headers: {
'User-Agent': 'okhttp/3.14.9',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: {
vod_id: ids,
}
});
let html = JSON.parse(html1);
const rdata = JSON.parse(AES_Decrypt(html.data));
console.log(rdata);
const data = {
vod_id: ids,
vod_name: rdata.vod.vod_name,
vod_remarks: rdata.vod.vod_remarks,
vod_actor: rdata.vod.vod_actor,
vod_director: rdata.vod.vod_director,
vod_content: rdata.vod.vod_content,
vod_play_from: '',
vod_play_url: ''
};
rdata.vod_play_list.forEach((value) => {
data.vod_play_from += value.player_info.show + '$$$';
value.urls.forEach((v) => {
data.vod_play_url += v.name + '$' + value.player_info.parse + '~' + v.url + '~' + rdata.vod.vod_name + '~' + v.name + '#';
});
data.vod_play_url += '$$$';
});
return data;
}
//搜索
globalThis.ssvod = function(wd) {
var html1 = fetch(h_ost + 'api.php/getappapi.index/searchList', {
method: 'POST',
headers: {
'User-Agent': 'okhttp/3.14.9',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: {
keywords: wd,
typepage_id: 1,
}
});
let html = JSON.parse(html1);
return AES_Decrypt(html.data);
}
//解析
globalThis.jxx = function(id, url, name, juji) {
try {
if (id.includes('xmflv')) {
return {
parse: 1,
url: id + url,
jx: 0,
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
};
}
//log(id);
if (url.includes('m3u8')) {
return {
parse: 0,
url: url,
jx: 1,
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
};
}
if (id.includes('http')) {
let purl = JSON.parse(request(id + url)).url;
return {
parse: 0,
url: purl,
jx: 0,
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
};
}
let html1 = request(h_ost + 'api.php/getappapi.index/vodParse', {
method: 'POST',
headers: {
'User-Agent': 'okhttp/3.14.9',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: {
parse_api: id,
url: AES_Encrypt(url),
}
});
let html = AES_Decrypt(JSON.parse(html1).data);
console.log(html1);
let decry = html.replace(/\n/g, '').replace(/\\/g, '');
let matches = decry.match(/"url":"([^"]+)"/);
if (!matches || matches[1] === null) {
matches = decry.match(/"url": "([^"]+)"/);
}
return {
parse: 0,
url: matches[1],
jx: 0,
danmaku: 'http://103.45.162.207:25252/hbdm.php?key=7894561232&id=' + '&jm=' + name + '&js=' + juji + '&key=741852963'
};
} catch {
return {
parse: 0,
url: '解析失败',
jx: 0
};
}
}
var rule = {
title: '米兔[资]',
host: '',
detailUrl: 'fyid',
searchUrl: '**',
url: 'fyclass',
searchable: 2,
quickSearch: 1,
filterable: 0,
class_name: '电影&电视剧&综艺&动漫',
class_url: '1&2&3&4',
play_parse: true,
lazy: $js.toString(() => {
const parts = input.split('~');
input = jxx(parts[0], parts[1], parts[2], parts[3]);
}),
推荐: $js.toString(() => {
let data = vod1(0, 0);
let bata = JSON.parse(data).recommend_list;
bata.forEach(it => {
d.push({
url: it.vod_id,
title: it.vod_name,
img: it.vod_pic,
desc: it.vod_remarks
});
});
setResult(d);
}),
一级: $js.toString(() => {
let data = vod1(input, MY_PAGE);
let bata = JSON.parse(data).recommend_list;
bata.forEach(it => {
d.push({
url: it.vod_id,
title: it.vod_name,
img: it.vod_pic,
desc: it.vod_remarks
});
});
setResult(d);
}),
二级: $js.toString(() => {
console.log("调试信息2" + input);
let data = vodids(input);
//console.log(data);
VOD = data;
}),
搜索: $js.toString(() => {
let data = ssvod(input);
let bata = JSON.parse(data).search_list;
bata.forEach(it => {
d.push({
url: it.vod_id,
title: it.vod_name,
img: it.vod_pic,
desc: it.vod_remarks
});
});
// console.log(data);
setResult(d);
}),
}
-743
View File
@@ -1,743 +0,0 @@
// 地址发布页 https://subaibai.vip/
// 搜索数字验证
var rule = {
title: '素白白',
// host:'https://www.subaibaiys.com',
host: 'https://subaibai.vip',
hostJs: 'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src = jsp.pdfh(html,".go:eq(0)&&a&&href");print(src);HOST=src', //网页域名根动态抓取js代码。通过HOST=赋值
// url:'/fyclass/page/fypage',
url: '/fyclassfyfilter',
filterable: 1, //是否启用分类筛选,
filter_url: '{{fl.area}}{{fl.year}}{{fl.class}}{{fl.cateId}}/page/fypage',
filter: {
"movie_bt": [{
"key": "cateId",
"name": "分类",
"value": [{
"n": "全部",
"v": ""
}, {
"v": "/movie_bt_series/dongmanju",
"n": "动漫剧"
}, {
"v": "/movie_bt_series/dongmandy",
"n": "动漫电影"
}, {
"v": "/movie_bt_series/yindudy",
"n": "印度电影"
}, {
"v": "/movie_bt_series/guochanju",
"n": "国产剧"
}, {
"v": "/movie_bt_series/guochandy",
"n": "国产电影"
}, {
"v": "/movie_bt_series/riju",
"n": "日剧"
}, {
"v": "/movie_bt_series/rihandy",
"n": "日韩电影"
}, {
"v": "/movie_bt_series/oumeiju",
"n": "欧美剧"
}, {
"v": "/movie_bt_series/oumeidy",
"n": "欧美电影"
}, {
"v": "/movie_bt_series/taiju",
"n": "泰剧"
}, {
"v": "/movie_bt_series/thaidy",
"n": "泰国电影"
}, {
"v": "/movie_bt_series/gangju",
"n": "港台剧"
}, {
"v": "/movie_bt_series/gangtaidy",
"n": "港台电影"
}, {
"v": "/movie_bt_series/documentary",
"n": "纪录片"
}, {
"v": "/movie_bt_series/zongyi",
"n": "综艺"
}, {
"v": "/movie_bt_series/hanju",
"n": "韩剧"
}, {
"v": "/movie_bt_series/xianggangdy",
"n": "香港经典电影"
}]
}, {
"key": "class",
"name": "类型",
"value": [{
"n": "全部",
"v": ""
}, {
"v": "/movie_bt_tags/pop-popular",
"n": "POP流行"
}, {
"v": "/movie_bt_tags/biography",
"n": "传记"
}, {
"v": "/movie_bt_tags/child",
"n": "儿童"
}, {
"v": "/movie_bt_tags/adventure",
"n": "冒险"
}, {
"v": "/movie_bt_tags/plot",
"n": "剧情"
}, {
"v": "/movie_bt_tags/action",
"n": "动作"
}, {
"v": "/movie_bt_tags/anime",
"n": "动漫"
}, {
"v": "/movie_bt_tags/animation",
"n": "动画"
}, {
"v": "/movie_bt_tags/history",
"n": "历史"
}, {
"v": "/movie_bt_tags/costume",
"n": "古装"
}, {
"v": "/movie_bt_tags/antiquity",
"n": "古风"
}, {
"v": "/movie_bt_tags/homosexual",
"n": "同性"
}, {
"v": "/movie_bt_tags/comedy",
"n": "喜剧"
}, {
"v": "/movie_bt_tags/fantasy",
"n": "奇幻"
}, {
"v": "/movie_bt_tags/family",
"n": "家庭"
}, {
"v": "/movie_bt_tags/terror",
"n": "恐怖"
}, {
"v": "/movie_bt_tags/suspense",
"n": "悬疑"
}, {
"v": "/movie_bt_tags/erotic",
"n": "情色"
}, {
"v": "/movie_bt_tags/thriller",
"n": "惊悚"
}, {
"v": "/movie_bt_tags/drama",
"n": "戏曲"
}, {
"v": "/movie_bt_tags/war",
"n": "战争"
}, {
"v": "/movie_bt_tags/latin",
"n": "拉丁"
}, {
"v": "/movie_bt_tags/funny",
"n": "搞笑"
}, {
"v": "/movie_bt_tags/campus",
"n": "校园"
}, {
"v": "/movie_bt_tags/song-and-dance",
"n": "歌舞"
}, {
"v": "/movie_bt_tags/martial-arts",
"n": "武侠"
}, {
"v": "/movie_bt_tags/disaster",
"n": "灾难"
}, {
"v": "/movie_bt_tags/love",
"n": "爱情"
}, {
"v": "/movie_bt_tags/crime",
"n": "犯罪"
}, {
"v": "/movie_bt_tags/fancy",
"n": "玄幻"
}, {
"v": "/movie_bt_tags/reality-show",
"n": "真人秀"
}, {
"v": "/movie_bt_tags/short-film",
"n": "短片"
}, {
"v": "/movie_bt_tags/kehuan",
"n": "科幻"
}, {
"v": "/movie_bt_tags/documentary",
"n": "纪录片"
}, {
"v": "/movie_bt_tags/talkshow",
"n": "脱口秀"
}, {
"v": "/movie_bt_tags/stageart",
"n": "舞台艺术"
}, {
"v": "/movie_bt_tags/west",
"n": "西部"
}, {
"v": "/movie_bt_tags/sport",
"n": "运动"
}, {
"v": "/movie_bt_tags/youth",
"n": "青春"
}, {
"v": "/movie_bt_tags/music",
"n": "音乐"
}, {
"v": "/movie_bt_tags/ghost",
"n": "鬼怪"
}, {
"v": "/movie_bt_tags/black-film",
"n": "黑色电影"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": ""
}, {
"v": "/movie_bt_cat/bhutan",
"n": "不丹"
}, {
"v": "/movie_bt_cat/china",
"n": "中国"
}, {
"v": "/movie_bt_cat/china-taiwan",
"n": "中国台湾"
}, {
"v": "/movie_bt_cat/china-mainland",
"n": "中国大陆"
}, {
"v": "/movie_bt_cat/china-hongkong",
"n": "中国香港"
}, {
"v": "/movie_bt_cat/denmark",
"n": "丹麦"
}, {
"v": "/movie_bt_cat/ukraine",
"n": "乌克兰"
}, {
"v": "/movie_bt_cat/uruguay",
"n": "乌拉圭"
}, {
"v": "/movie_bt_cat/israel",
"n": "以色列"
}, {
"v": "/movie_bt_cat/iraq",
"n": "伊拉克"
}, {
"v": "/movie_bt_cat/iran",
"n": "伊朗"
}, {
"v": "/movie_bt_cat/russia",
"n": "俄罗斯"
}, {
"v": "/movie_bt_cat/bulgaria",
"n": "保加利亚"
}, {
"v": "/movie_bt_cat/croatia",
"n": "克罗地亚"
}, {
"v": "/movie_bt_cat/iceland",
"n": "冰岛"
}, {
"v": "/movie_bt_cat/canada",
"n": "加拿大"
}, {
"v": "/movie_bt_cat/hungary",
"n": "匈牙利"
}, {
"v": "/movie_bt_cat/south-africa",
"n": "南非"
}, {
"v": "/movie_bt_cat/botswana",
"n": "博茨瓦纳"
}, {
"v": "/movie_bt_cat/qatar",
"n": "卡塔尔"
}, {
"v": "/movie_bt_cat/luxembourg",
"n": "卢森堡"
}, {
"v": "/movie_bt_cat/india",
"n": "印度"
}, {
"v": "/movie_bt_cat/indonesia",
"n": "印度尼西亚"
}, {
"v": "/movie_bt_cat/kazakhstan",
"n": "哈萨克斯坦"
}, {
"v": "/movie_bt_cat/colombia",
"n": "哥伦比亚"
}, {
"v": "/movie_bt_cat/turkey",
"n": "土耳其"
}, {
"v": "/movie_bt_cat/serbia",
"n": "塞尔维亚"
}, {
"v": "/movie_bt_cat/cyprus",
"n": "塞浦路斯"
}, {
"v": "/movie_bt_cat/mexico",
"n": "墨西哥"
}, {
"v": "/movie_bt_cat/dominica",
"n": "多米尼加"
}, {
"v": "/movie_bt_cat/austria",
"n": "奥地利"
}, {
"v": "/movie_bt_cat/venezuela",
"n": "委内瑞拉"
}, {
"v": "/movie_bt_cat/nigeria",
"n": "尼日利亚"
}, {
"v": "/movie_bt_cat/巴基斯坦",
"n": "巴基斯坦"
}, {
"v": "/movie_bt_cat/paraguay",
"n": "巴拉圭"
}, {
"v": "/movie_bt_cat/brazil",
"n": "巴西"
}, {
"v": "/movie_bt_cat/greece",
"n": "希腊"
}, {
"v": "/movie_bt_cat/germany",
"n": "德国"
}, {
"v": "/movie_bt_cat/italy",
"n": "意大利"
}, {
"v": "/movie_bt_cat/latvia",
"n": "拉脱维亚"
}, {
"v": "/movie_bt_cat/norway",
"n": "挪威"
}, {
"v": "/movie_bt_cat/chech",
"n": "捷克"
}, {
"v": "/movie_bt_cat/摩洛哥",
"n": "摩洛哥"
}, {
"v": "/movie_bt_cat/斯洛伐克",
"n": "斯洛伐克"
}, {
"v": "/movie_bt_cat/slovenia",
"n": "斯洛文尼亚"
}, {
"v": "/movie_bt_cat/singapore",
"n": "新加坡"
}, {
"v": "/movie_bt_cat/zealand",
"n": "新西兰"
}, {
"v": "/movie_bt_cat/japan",
"n": "日本"
}, {
"v": "/movie_bt_cat/chile",
"n": "智利"
}, {
"v": "/movie_bt_cat/north-korea",
"n": "朝鲜"
}, {
"v": "/movie_bt_cat/cambodia",
"n": "柬埔寨"
}, {
"v": "/movie_bt_cat/georgia",
"n": "格鲁吉亚"
}, {
"v": "/movie_bt_cat/belgium",
"n": "比利时"
}, {
"v": "/movie_bt_cat/saudi-arabia",
"n": "沙特阿拉伯"
}, {
"v": "/movie_bt_cat/france",
"n": "法国"
}, {
"v": "/movie_bt_cat/poland",
"n": "波兰"
}, {
"v": "/movie_bt_cat/puertorco",
"n": "波多黎各"
}, {
"v": "/movie_bt_cat/bohei",
"n": "波黑"
}, {
"v": "/movie_bt_cat/thailand",
"n": "泰国"
}, {
"v": "/movie_bt_cat/australia",
"n": "澳大利亚"
}, {
"v": "/movie_bt_cat/ireland",
"n": "爱尔兰"
}, {
"v": "/movie_bt_cat/estonia",
"n": "爱沙尼亚"
}, {
"v": "/movie_bt_cat/sweden",
"n": "瑞典"
}, {
"v": "/movie_bt_cat/switzerland",
"n": "瑞士"
}, {
"v": "/movie_bt_cat/belarus",
"n": "白俄罗斯"
}, {
"v": "/movie_bt_cat/peru",
"n": "秘鲁"
}, {
"v": "/movie_bt_cat/tunisia",
"n": "突尼斯"
}, {
"v": "/movie_bt_cat/lithuania",
"n": "立陶宛"
}, {
"v": "/movie_bt_cat/romania",
"n": "罗马尼亚"
}, {
"v": "/movie_bt_cat/america",
"n": "美国"
}, {
"v": "/movie_bt_cat/finland",
"n": "芬兰"
}, {
"v": "/movie_bt_cat/sovietunion",
"n": "苏联"
}, {
"v": "/movie_bt_cat/england",
"n": "英国"
}, {
"v": "/movie_bt_cat/netherlands",
"n": "荷兰"
}, {
"v": "/movie_bt_cat/philippines",
"n": "菲律宾"
}, {
"v": "/movie_bt_cat/葡萄牙",
"n": "葡萄牙"
}, {
"v": "/movie_bt_cat/west-germany",
"n": "西德"
}, {
"v": "/movie_bt_cat/spain",
"n": "西班牙"
}, {
"v": "/movie_bt_cat/vietnam",
"n": "越南"
}, {
"v": "/movie_bt_cat/argentina",
"n": "阿根廷"
}, {
"v": "/movie_bt_cat/korea",
"n": "韩国"
}, {
"v": "/movie_bt_cat/malaysia",
"n": "马来西亚"
}, {
"v": "/movie_bt_cat/马耳他",
"n": "马耳他"
}]
}, {
"key": "year",
"name": "年份",
"value": [{
"n": "全部",
"v": ""
}, {
"v": "/year/2024",
"n": "2024"
}, {
"v": "/year/2023",
"n": "2023"
}, {
"v": "/year/2022",
"n": "2022"
}, {
"v": "/year/2021",
"n": "2021"
}, {
"v": "/year/2020",
"n": "2020"
}, {
"v": "/year/2019",
"n": "2019"
}, {
"v": "/year/2018",
"n": "2018"
}, {
"v": "/year/2017",
"n": "2017"
}, {
"v": "/year/2016",
"n": "2016"
}, {
"v": "/year/2015",
"n": "2015"
}, {
"v": "/year/2014",
"n": "2014"
}, {
"v": "/year/2013",
"n": "2013"
}, {
"v": "/year/2012",
"n": "2012"
}, {
"v": "/year/2011",
"n": "2011"
}, {
"v": "/year/2010",
"n": "2010"
}, {
"v": "/year/2009",
"n": "2009"
}, {
"v": "/year/2008",
"n": "2008"
}, {
"v": "/year/2007",
"n": "2007"
}, {
"v": "/year/2006",
"n": "2006"
}, {
"v": "/year/2005",
"n": "2005"
}, {
"v": "/year/2004",
"n": "2004"
}, {
"v": "/year/2003",
"n": "2003"
}, {
"v": "/year/2002",
"n": "2002"
}, {
"v": "/year/2001",
"n": "2001"
}, {
"v": "/year/2000",
"n": "2000"
}, {
"v": "/year/1999",
"n": "1999"
}, {
"v": "/year/1998",
"n": "1998"
}, {
"v": "/year/1997",
"n": "1997"
}, {
"v": "/year/1996",
"n": "1996"
}, {
"v": "/year/1995",
"n": "1995"
}, {
"v": "/year/1994",
"n": "1994"
}, {
"v": "/year/1993",
"n": "1993"
}, {
"v": "/year/1992",
"n": "1992"
}, {
"v": "/year/1991",
"n": "1991"
}, {
"v": "/year/1990",
"n": "1990"
}, {
"v": "/year/1989",
"n": "1989"
}, {
"v": "/year/1988",
"n": "1988"
}, {
"v": "/year/1987",
"n": "1987"
}, {
"v": "/year/1986",
"n": "1986"
}, {
"v": "/year/1985",
"n": "1985"
}, {
"v": "/year/1984",
"n": "1984"
}, {
"v": "/year/1983",
"n": "1983"
}, {
"v": "/year/1982",
"n": "1982"
}, {
"v": "/year/1981",
"n": "1981"
}, {
"v": "/year/1980",
"n": "1980"
}, {
"v": "/year/1979",
"n": "1979"
}, {
"v": "/year/1978",
"n": "1978"
}, {
"v": "/year/1977",
"n": "1977"
}, {
"v": "/year/1976",
"n": "1976"
}, {
"v": "/year/1975",
"n": "1975"
}, {
"v": "/year/1974",
"n": "1974"
}, {
"v": "/year/1973",
"n": "1973"
}, {
"v": "/year/1972",
"n": "1972"
}, {
"v": "/year/1971",
"n": "1971"
}, {
"v": "/year/1970",
"n": "1970"
}, {
"v": "/year/1969",
"n": "1969"
}, {
"v": "/year/1968",
"n": "1968"
}, {
"v": "/year/1967",
"n": "1967"
}, {
"v": "/year/1966",
"n": "1966"
}, {
"v": "/year/1965",
"n": "1965"
}, {
"v": "/year/1964",
"n": "1964"
}, {
"v": "/year/1963",
"n": "1963"
}, {
"v": "/year/1962",
"n": "1962"
}, {
"v": "/year/1960",
"n": "1960"
}, {
"v": "/year/1959",
"n": "1959"
}, {
"v": "/year/1954",
"n": "1954"
}, {
"v": "/year/1952",
"n": "1952"
}, {
"v": "/year/1950",
"n": "1950"
}, {
"v": "/year/1949",
"n": "1949"
}, {
"v": "/year/1948",
"n": "1948"
}, {
"v": "/year/1940",
"n": "1940"
}, {
"v": "/year/1939",
"n": "1939"
}, {
"v": "/year/1925",
"n": "1925"
}]
}]
},
// searchUrl:'/search?q=**',
searchUrl: '/search?q=**',
searchable: 2, //是否启用全局搜索,
quickSearch: 0, //是否启用快速搜索,
headers: {
'User-Agent': 'UC_UA',
},
class_parse: '.navlist&&li;a&&Text;a&&href;.*/([^/]+)',
play_parse: true,
// lazy:'',
lazy: `js:
pdfh = jsp.pdfh;
var html = request(input);
var ohtml = pdfh(html, '.videoplay&&Html');
var url = pdfh(ohtml, "body&&iframe&&src");
if (/Cloud/.test(url)) {
var ifrwy = request(url);
let code = ifrwy.match(/var url = '(.*?)'/)[1].split('').reverse().join('');
let temp = '';
for (let i = 0x0; i < code.length; i = i + 0x2) {
temp += String.fromCharCode(parseInt(code[i] + code[i + 0x1], 0x10))
}
input = {
jx: 0,
url: temp.substring(0x0, (temp.length - 0x7) / 0x2) + temp.substring((temp.length - 0x7) / 0x2 + 0x7),
parse: 0
}
} else if (/decrypted/.test(ohtml)) {
var phtml = pdfh(ohtml, "body&&script:not([src])&&Html");
eval(getCryptoJS());
var scrpt = phtml.match(/var.*?\\)\\);/g)[0];
var data = [];
eval(scrpt.replace(/md5/g, 'CryptoJS').replace('eval', 'data = '));
input = {
jx: 0,
url: data.match(/url:.*?[\\'\\"](.*?)[\\'\\"]/)[1],
parse: 0
}
} else {
input
}
`,
limit: 6,
推荐: '.leibox&&li;*;*;*;*',
// double:true, // 推荐内容是否双层定位
一级: '.mrb&&li;img&&alt;img&&data-original;.jidi&&Text;a&&href',
二级: {
"title": "h1&&Text;.moviedteail_list&&li:eq(0)&&Text",
"img": ".dyimg&&img&&src",
"desc": ".moviedteail_list&&li:eq(-1)&&Text;;;.moviedteail_list&&li:eq(7)&&Text;.moviedteail_list&&li:eq(5)&&Text",
"content": ".yp_context&&p&&Text",
"tabs": ".mi_paly_box .ypxingq_t--span",
"lists": ".paly_list_btn:eq(#id) a"
},
搜索: '.search_list&&li;img&&alt;img&&data-original;.nostag&&Text;a&&href',
}
-37
View File
@@ -1,37 +0,0 @@
var rule = {
title: '追剧迷',
模板: 'vfed',
host: 'https://www.zhuijumi.cc',
// url:'/videotype/fyclass-fypage.html',
url: '/mp4type/fyclass-fypage.html',
searchUrl: '/mp4search/-.html?wd=**',
class_parse: '.fed-part-tips li;a&&Text;a&&href;.*/(.*?).html',
cate_exclude: '更多|申请',
lazy: `js:
var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
var url = html.url;
if (html.encrypt == '1') {
url = unescape(url)
} else if (html.encrypt == '2') {
url = unescape(base64Decode(url))
}
if (/\\.m3u8|\\.mp4/.test(url)) {
input = {
jx: 0,
url: url,
parse: 0
}
} else {
input
}
`,
二级: {
"title": "h1&&Text;.fed-col-xs6--span:eq(0)&&Text",
"img": ".fed-list-info&&a&&data-original",
"desc": ".fed-col-xs12.fed-part-eone:eq(3)&&Text;;;.fed-col-xs12.fed-part-eone--span:eq(0)&&Text;.fed-col-xs12.fed-part-eone--span:eq(1)&&Text",
"content": ".fed-conv-text:eq(0)&&Text",
"tabs": "ul.fed-padding&&li",
"lists": ".fed-tabs-btm:eq(#id) li"
},
搜索: '.fed-list-deta;h1&&Text;.fed-lazy&&data-original;.fed-list-remarks&&Text;a&&href;.fed-col-xs12.fed-part-eone:eq(2)&&Text',
}
-16
View File
@@ -1,16 +0,0 @@
{
"drives": [
{
"name": "七米藍",
"server": "https://al.chirmyram.com/dav",
"user": "alist",
"pass": "alist"
},
{
"name": "影視庫",
"server": "https://esir.eu.org/dav",
"user": "alist",
"pass": "alist"
}
]
}
-74
View File
@@ -1,74 +0,0 @@
{
"规则名": " 星辰影院",
"规则作者": "香雅情",
"请求头参数": "User-Agent$手机#Cookie$tcpvsd=1686288471101",
"网页编码格式": "UTF-8",
"图片是否需要代理": "0",
"是否开启获取首页数据": "是",
"首页推荐链接": "http://www.40yb.com",
"首页列表数组规则": "body&&.stui-vodlist:has(h4)",
"首页片单列表数组规则": "li",
"首页片单是否Jsoup写法": "1",
"分类起始页码": "1",
"分类链接": "http://www.40yb.com/{cateId}/index{catePg}.html[firstPage=http://www.40yb.com/{cateId}/index.html]",
"分类名称": "电影&电视剧&综艺&动漫",
"分类名称替换词": "dianying&dianshiju&zongyi&dongman",
"筛选数据": "ext",
"筛选子分类名称": "动作片&爱情片&科幻片&恐怖片&喜剧片&剧情片&在线直播||国产剧&港台剧&欧美剧&日韩剧",
"筛选子分类替换词": "dongzuopian&aiqingpian&kehuanpian&kongbupian&xijupian&juqingpian&zaixianzhibo||guochanju&tangtaiju&oumeiju&rihanju",
"筛选类型名称": "",
"筛选类型替换词": "*",
"筛选地区名称": "",
"筛选地区替换词": "*",
"筛选年份名称": "",
"筛选年份替换词": "*",
"筛选语言名称": "",
"筛选语言替换词": "*",
"筛选排序名称": "",
"筛选排序替换词": "",
"分类截取模式": "1",
"分类列表数组规则": ".stui-vodlist&&li",
"分类片单是否Jsoup写法": "1",
"分类片单标题": "h4&&a&&Text",
"分类片单链接": "h4&&a&&href",
"分类片单图片": ".lazyload&&data-original",
"分类片单副标题": ".pic-text&&Text",
"分类片单链接加前缀": "http://www.40yb.com",
"分类片单链接加后缀": "",
"搜索请求头参数": "User-Agent$手机#Cookie$tcpvsd=1686288471101",
"搜索链接": "http://www.40yb.com/search.php;post",
"POST请求数据": "searchword={wd}",
"搜索截取模式": "1",
"搜索列表数组规则": ".stui-vodlist__media&&li",
"搜索片单是否Jsoup写法": "1",
"搜索片单图片": ".lazyload&&data-original",
"搜索片单标题": "h3&&a&&Text",
"搜索片单链接": "h3&&a&&href",
"搜索片单副标题": ".pic-text&&Text",
"搜索片单链接加前缀": "http://www.40yb.com",
"搜索片单链接加后缀": "",
"链接是否直接播放": "0",
"直接播放链接加前缀": "",
"直接播放链接加后缀": "",
"直接播放直链视频请求头": "",
"详情是否Jsoup写法": "0",
"类型详情": "类型:</span>&&</a>",
"年代详情": "年份:</span>&&</a>",
"地区详情": "地区:</span>&&</a>",
"演员详情": "主演:</span>&&</p>",
"简介详情": "简介:</span>&&</p>",
"线路列表数组规则": "body&&#playlist",
"线路标题": "h3&&Text",
"播放列表数组规则": "body&&.stui-content__playlist",
"选集列表数组规则": "li",
"选集标题链接是否Jsoup写法": "1",
"选集标题": "a&&Text",
"选集链接": "a&&href",
"是否反转选集序列": "0",
"选集链接加前缀": "http://www.40yb.com",
"选集链接加后缀": "",
"分析MacPlayer": "0",
"是否开启手动嗅探": "0",
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
"手动嗅探视频链接过滤词": ".html#=http"
}
-60
View File
@@ -1,60 +0,0 @@
{
"规则名": "百思派电影网",
"请求头参数": "手机",
"网页编码格式": "UTF-8",
"图片是否需要代理": "0",
"是否开启获取首页数据": "1",
"首页推荐链接": "https://www.bestpipe.cn",
"首页列表数组规则": "body&&.stui-vodlist",
"首页片单列表数组规则": "li",
"首页片单是否Jsoup写法": "1",
"分类起始页码": "1",
"分类链接": "https://www.bestpipe.cn/vodshow/{cateId}-{area}-{by}-{class}-{lang}----{catePg}---{year}.html",
"分类名称": "电影&剧集&短剧&动漫&综艺",
"分类名称替换词": "20&21&24&22&23",
"筛选数据": "ext",
"筛选类型名称": "Netflix&剧情&科幻&动作&喜剧&爱情&冒险&儿童&歌舞&音乐&奇幻&动画&恐怖&惊悚&战争&传记&纪录&犯罪&悬疑&西部&灾难&古装&武侠&家庭&短片&校园&文艺&运动&青春&同性&励志&历史||Netflix&欧美&短剧&古装&武侠&励志&家庭&剧情&喜剧&战争&科幻&惊悚&恐怖&悬疑&犯罪&动作&冒险&历史&同性||古代&现代&穿越&玄幻&霸总&英雄救美&未婚妻&师姐&绝美&逆袭&美女&爱情&甜宠&虐恋&爽剧&搞笑&情感&动漫&萌宝&都市&言情&重生&乡村&神医&幻想&反转&复仇&修仙&古装&男频||Netflix&热血&科幻&美少女&魔幻&经典&励志&少儿&冒险&搞笑&推理&恋爱&治愈&幻想&校园&动物&机战&亲子&儿歌&运动&悬疑&怪物&战争&益智&青春&童话&竞技&动作&社会&友情&真人版&电影版&OVA版&TV版&新番动画&完结动画||Netflix&脱口秀&真人秀&选秀&八卦&访谈&情感&生活&晚会&搞笑&音乐&时尚&游戏&少儿&体育&纪实&科教&曲艺&歌舞&财经&汽车&播报&其他",
"筛选类型替换词": "*",
"筛选地区名称": "大陆&香港&台湾&美国&日本&韩国&英国&法国&德国&印度&泰国&丹麦&瑞典&巴西&加拿大&俄罗斯&意大利&比利时&爱尔兰&西班牙&澳大利亚&其它||大陆&香港&韩国&美国&日本&法国&英国&德国&台湾&泰国&印度&其他||大陆&香港&韩国&美国&日本&法国&英国&德国&台湾&泰国&印度&其他||大陆&日本&欧美&其他||大陆&韩国&香港&台湾&美国&其它",
"筛选地区替换词": "*",
"筛选语言名称": "英语&法语&国语&粤语&日语&韩语&泰语&德语&俄语&闽南语&丹麦语&波兰语&瑞典语&印地语&挪威语&意大利语&西班牙语||空||空||国语&英语&粤语&闽南语&韩语&日语&其它||国语&英语&粤语&闽南语&韩语&日语&其它",
"筛选语言替换词": "*",
"详情是否Jsoup写法": "是",
"类型详情": ".stui-content__detail&&.data,1&&Text!状态:",
"年代详情": ".stui-content__detail&&.data,4&&Text!年份:",
"地区详情": ".stui-content__detail&&.data,2&&Text!地区:",
"演员详情": ".stui-content__detail&&.data,6&&Text!主演:",
"简介详情": ".stui-content__detail&&.detail-content&&Text",
"分类截取模式": "1",
"分类列表数组规则": "body&&.stui-vodlist__box",
"分类片单是否Jsoup写法": "1",
"分类片单标题": "a&&title",
"分类片单链接": "a&&href",
"分类片单图片": ".stui-vodlist__thumb&&data-original",
"分类片单副标题": ".pic-text&&Text",
"分类片单链接加前缀": "https://www.bestpipe.cn",
"搜索请求头参数": "User-Agent$手机",
"搜索链接": "https://www.bestpipe.cn/vodsearch/{wd}----------1---.html",
"搜索截取模式": "1",
"搜索列表数组规则": "body&&.stui-vodlist__box",
"搜索片单是否Jsoup写法": "1",
"搜索片单标题": "a&&title",
"搜索片单链接": "a&&href",
"搜索片单图片": ".stui-vodlist__thumb&&data-original",
"搜索片单副标题": ".pic-text&&Text",
"搜索片单链接加前缀": "https://www.bestpipe.cn",
"线路列表数组规则": "body&&.nav-tabs&&a",
"线路标题": "Text",
"播放列表数组规则": "body&&.stui-content__playlist",
"选集列表数组规则": "a",
"选集标题链接是否Jsoup写法": "1",
"选集标题": "a&&Text",
"选集链接": "a&&href",
"是否反转选集序列": "0",
"选集链接加前缀": "https://www.bestpipe.cn",
"选集链接加后缀": "",
"分析MacPlayer": "2",
"是否开启手动嗅探": "0",
"手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
"手动嗅探视频链接过滤词": ".html#=http"
}
+50 -41
View File
@@ -195,13 +195,6 @@
"api": "./JS/drpy2.min.js", "api": "./JS/drpy2.min.js",
"ext": "./JS/爱奇艺弹幕.js" "ext": "./JS/爱奇艺弹幕.js"
}, },
{
"key": "米兔弹幕",
"name": "米兔|弹幕",
"type": 3,
"api": "./JS/drpy2.min.js",
"ext": "./JS/米兔弹幕.js"
},
{ {
"key": "追剧弹幕", "key": "追剧弹幕",
"name": "追剧|弹幕", "name": "追剧|弹幕",
@@ -723,6 +716,14 @@
"playerType": 1, "playerType": 1,
"ext": "jaHR0cDovLzExMS4xODAuMTk4LjQwOjExMTB8NDk0ODA4MDgwbGdneXNjb3w0OTQ4MDgwODBsZ2d5c2NvfDY2Ng==" "ext": "jaHR0cDovLzExMS4xODAuMTk4LjQwOjExMTB8NDk0ODA4MDgwbGdneXNjb3w0OTQ4MDgwODBsZ2d5c2NvfDY2Ng=="
}, },
{
"key": "奇妙",
"name": "奇妙|APP",
"type": 3,
"api": "csp_Xdai",
"playerType": 1,
"ext": "jaHR0cDovLzE1NC4xMi45MS4yMTE6NjY4fDEyMzQ1Njc4OUFCQ0RFRkd8MTIzNDU2Nzg5QUJDREVGR3wxMDY="
},
{ {
"key": "时常", "key": "时常",
"name": "时常|APP", "name": "时常|APP",
@@ -1085,26 +1086,6 @@
"filterable": 1, "filterable": 1,
"ext": "./XYQHiker/骚火影视.json" "ext": "./XYQHiker/骚火影视.json"
}, },
{
"key": "星辰影视",
"name": "星辰|影视",
"type": 3,
"api": "csp_XYQHiker",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XYQHiker/星辰影视.json"
},
{
"key": "百思派",
"name": "百思派|影视",
"type": 3,
"api": "csp_XYQHiker",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
"ext": "./XYQHiker/百思派.json"
},
{ {
"key": "电影牛", "key": "电影牛",
"name": "电影牛|影视", "name": "电影牛|影视",
@@ -1115,13 +1096,6 @@
"filterable": 1, "filterable": 1,
"ext": "./XYQHiker/电影牛.json" "ext": "./XYQHiker/电影牛.json"
}, },
{
"key": "素白白",
"name": "素白白|影视",
"type": 3,
"api": "./JS/drpy2.min.js",
"ext": "./JS/素白白.js"
},
{ {
"key": "剧圈圈", "key": "剧圈圈",
"name": "剧圈圈|影视", "name": "剧圈圈|影视",
@@ -1129,13 +1103,6 @@
"api": "./JS/drpy2.min.js", "api": "./JS/drpy2.min.js",
"ext": "./JS/剧圈圈.js" "ext": "./JS/剧圈圈.js"
}, },
{
"key": "追剧迷",
"name": "追剧迷|影视",
"type": 3,
"api": "./JS/drpy2.min.js",
"ext": "./JS/追剧迷.js"
},
{ {
"key": "看了么", "key": "看了么",
"name": "看了么|影视", "name": "看了么|影视",
@@ -1886,6 +1853,19 @@
"api": "csp_Living", "api": "csp_Living",
"searchable": 1 "searchable": 1
}, },
{
"key": "急救教学",
"name": "急救|教学",
"type": 3,
"api": "csp_FirstAid",
"searchable": 0,
"quickSearch": 0,
"changeable": 0,
"style": {
"type": "rect",
"ratio": 3.8
}
},
{ {
"key": "版本信息", "key": "版本信息",
"name": "版本|信息", "name": "版本|信息",
@@ -1913,6 +1893,35 @@
} }
], ],
"parses": [ "parses": [
{
"name": "夏夜",
"type": "1",
"url": "http://8.155.50.80/xiaye.php?url=",
"ext": {
"flag": [
"qq",
"腾讯",
"qiyi",
"爱奇艺",
"奇艺",
"youku",
"优酷",
"sohu",
"搜狐",
"letv",
"乐视",
"mgtv",
"芒果",
"tnmb",
"seven",
"bilibili",
"1905"
],
"header": {
"User-Agent": "okhttp/4.9.1"
}
}
},
{ {
"name": "臻享", "name": "臻享",
"type": "1", "type": "1",
BIN
View File
Binary file not shown.
+35 -11
View File
@@ -50,10 +50,10 @@
"changeable": 1 "changeable": 1
}, },
{ {
"key": "Wexpan123ziyuanGuard", "key": "WexxzysGuard",
"name": "💓‍123┃4K💓‍", "name": "💓校长┃4K💓",
"type": 3, "type": 3,
"api": "csp_Wexpan123ziyuanGuard", "api": "csp_WexxzysGuard",
"searchable": 1, "searchable": 1,
"changeable": 1 "changeable": 1
}, },
@@ -138,14 +138,6 @@
"searchable": 1, "searchable": 1,
"changeable": 1 "changeable": 1
}, },
{
"key": "WexxzysGuard",
"name": "💓校长┃4K💓",
"type": 3,
"api": "csp_WexxzysGuard",
"searchable": 1,
"changeable": 1
},
{ {
"key": "盘他", "key": "盘他",
"name": "💓‍盘他┃4K💓‍", "name": "💓‍盘他┃4K💓‍",
@@ -154,6 +146,14 @@
"searchable": 1, "searchable": 1,
"changeable": 1 "changeable": 1
}, },
{
"key": "Wexpan123ziyuanGuard",
"name": "💓‍123┃4K💓‍",
"type": 3,
"api": "csp_Wexpan123ziyuanGuard",
"searchable": 1,
"changeable": 1
},
{ {
"key": "雷鲸", "key": "雷鲸",
"name": "💓‍雷鲸┃4K💓‍", "name": "💓‍雷鲸┃4K💓‍",
@@ -798,6 +798,30 @@
"type": "list" "type": "list"
} }
}, },
{
"key": "xunlei",
"name": "💓我的┃讯蕾💓‍",
"type": 3,
"api": "csp_WexWoXunLeiPanGuard",
"searchable": 1,
"changeable": 1,
"timeout": 50,
"style": {
"type": "list"
}
},
{
"key": "baidu",
"name": "💓我的┃百度💓‍",
"type": 3,
"api": "csp_WexWoBaiduPanGuard",
"searchable": 1,
"changeable": 1,
"timeout": 50,
"style": {
"type": "list"
}
},
{ {
"key": "push_agent", "key": "push_agent",
"name": "推送", "name": "推送",
Binary file not shown.
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+1669 -1711
View File
File diff suppressed because it is too large. Load diff
+339 -230
View File
File diff suppressed because it is too large. Load diff