From 17a2ac86b271a192c5d36f53bddf3885abbb5532 Mon Sep 17 00:00:00 2001 From: bobbydigitales Date: Fri, 13 Sep 2024 22:57:30 -0700 Subject: [PATCH] WIP --- app.webmanifest | 35 + db.js | 71 +- db.js.map | 2 +- go.mod | 8 + go.sum | 52 ++ icons/dandelion_512x512.png | Bin 0 -> 6034 bytes images/lottie_test.json | 1 + images/screenshot1.jpg | Bin 0 -> 140405 bytes images/screenshot1.png | Bin 0 -> 211483 bytes images/screenshot2.jpg | Bin 0 -> 141370 bytes images/screenshot2.png | Bin 0 -> 211098 bytes index.html | 98 ++- lib/lottie.min.js | 1 + marked.min.js => lib/marked.min.js | 0 lib/qrcode.min.js | 1 + lib/webtorrent/webtorrent_1_8_0.min.js | 16 + main.go | 163 +++- main.js | 783 +++++++++++-------- main.js.map | 2 +- mdns/main.js | 13 + mdns/package-lock.json | 370 +++++++++ mdns/package.json | 5 + package.json | 2 +- robots.txt | 2 + src/db.ts | 93 ++- src/main.ts | 998 +++++++++++++++---------- src/webRTC.ts | 83 ++ webRTC.js | 56 ++ webRTC.js.map | 1 + 29 files changed, 2091 insertions(+), 765 deletions(-) create mode 100644 app.webmanifest create mode 100644 icons/dandelion_512x512.png create mode 100644 images/lottie_test.json create mode 100644 images/screenshot1.jpg create mode 100644 images/screenshot1.png create mode 100644 images/screenshot2.jpg create mode 100644 images/screenshot2.png create mode 100644 lib/lottie.min.js rename marked.min.js => lib/marked.min.js (100%) create mode 100644 lib/qrcode.min.js create mode 100644 lib/webtorrent/webtorrent_1_8_0.min.js create mode 100644 mdns/main.js create mode 100644 mdns/package-lock.json create mode 100644 mdns/package.json create mode 100644 robots.txt create mode 100644 src/webRTC.ts create mode 100644 webRTC.js create mode 100644 webRTC.js.map diff --git a/app.webmanifest b/app.webmanifest new file mode 100644 index 0000000..9df7d54 --- /dev/null +++ b/app.webmanifest @@ -0,0 +1,35 @@ +{ + "name": "Dandelion", + "short_name": "ddln", + "start_url": "/", + "display": "standalone", + "display_override": ["window-controls-overlay","standalone"], + "id": "b1dbe643-36fc-4419-9448-80f32a1baa1a", + "background_color": "#000000", + "theme_color": "#000000", + + "icons": [ + { + "src": "icons/dandelion_512x512.png", + "type": "image/png", + "sizes":"512x512" + } + ], + +"screenshots" : [ + { + "src": "images/screenshot1.jpg", + "sizes": "1280x720", + "type": "image/png", + "form_factor": "wide", + "label": "Dandelion desktop" + }, + { + "src": "images/screenshot2.jpg", + "sizes": "720x1280", + "type": "image/png", + "form_factor": "narrow", + "label": "Dandelion mobile" + } +] +} \ No newline at end of file diff --git a/db.js b/db.js index 7d8a604..05f9f03 100644 --- a/db.js +++ b/db.js @@ -3,12 +3,11 @@ // name: string; // email: string; // } -const dbName = "ddln"; -const storeNameBase = "posts"; +const postStoreName = "posts"; let keyBase = "dandelion_posts_v1_"; let key = ""; export function openDatabase(userID) { - const storeName = `${storeNameBase}_${userID}`; + const dbName = `user_${userID}`; return new Promise((resolve, reject) => { const request = indexedDB.open(dbName, 1); request.onerror = (event) => { @@ -18,8 +17,8 @@ export function openDatabase(userID) { }; request.onupgradeneeded = (event) => { const db = event.target.result; - if (!db.objectStoreNames.contains(storeName)) { - let store = db.createObjectStore(storeName, { keyPath: "id", autoIncrement: true }); + if (!db.objectStoreNames.contains(postStoreName)) { + let store = db.createObjectStore(postStoreName, { keyPath: "id", autoIncrement: true }); store.createIndex("datetimeIndex", "post_timestamp", { unique: false }); store.createIndex("postIDIndex", "data.post_id", { unique: true }); } @@ -32,10 +31,9 @@ export function openDatabase(userID) { } export async function addData(userID, data) { try { - const storeName = `${storeNameBase}_${userID}`; const db = await openDatabase(userID); - const transaction = db.transaction(storeName, "readwrite"); - const store = transaction.objectStore(storeName); + const transaction = db.transaction(postStoreName, "readwrite"); + const store = transaction.objectStore(postStoreName); const addRequest = store.add({ post_timestamp: data.post_timestamp, data: data }); addRequest.onsuccess = (e) => { // console.log('Data has been added:', (e.target as IDBRequest).result); @@ -50,12 +48,53 @@ export async function addData(userID, data) { console.error('Error in opening database:', error); } } +export async function deleteData(userID, postID) { + try { + const db = await openDatabase(userID); + const transaction = db.transaction(postStoreName, "readwrite"); + const store = transaction.objectStore(postStoreName); + const index = store.index("postIDIndex"); + const getRequest = index.getKey(postID); + getRequest.onerror = e => console.log(e.target.error); + getRequest.onsuccess = e => { + const key = e.target.result; + if (key === undefined) { + console.error("Post not found"); + return null; + } + const deleteRequest = store.delete(key); + deleteRequest.onerror = e => { console.error(e.target.error); return false; }; + deleteRequest.onsuccess = () => true; + }; + } + catch (error) { + console.error('Error in opening database:', error); + } +} +export async function clearData(userID) { + try { + const db = await openDatabase(userID); + const transaction = db.transaction(postStoreName, "readwrite"); + const store = transaction.objectStore(postStoreName); + const clearRequest = store.clear(); + clearRequest.onsuccess = (e) => { + // console.log('Data has been added:', (e.target as IDBRequest).result); + }; + clearRequest.onerror = (event) => { + // Use a type assertion to access the specific properties of IDBRequest error event + const errorEvent = event; + console.error('Error in clearing data:', errorEvent.target.error?.message); + }; + } + catch (error) { + console.error('Error in opening database:', error); + } +} export async function addDataArray(userID, array) { try { - const storeName = `${storeNameBase}_${userID}`; const db = await openDatabase(userID); - const transaction = db.transaction(storeName, "readwrite"); - const store = transaction.objectStore(storeName); + const transaction = db.transaction(postStoreName, "readwrite"); + const store = transaction.objectStore(postStoreName); let count = 0; array.reverse(); for (let data of array) { @@ -79,10 +118,9 @@ export async function addDataArray(userID, array) { } } export async function getData(userID, lowerID, upperID) { - const storeName = `${storeNameBase}_${userID}`; const db = await openDatabase(userID); - const transaction = db.transaction(storeName, "readonly"); - const store = transaction.objectStore(storeName); + const transaction = db.transaction(postStoreName, "readonly"); + const store = transaction.objectStore(postStoreName); return new Promise((resolve, reject) => { const keyRangeValue = IDBKeyRange.bound(lowerID, upperID); const records = []; @@ -108,10 +146,9 @@ export async function getData(userID, lowerID, upperID) { }); } export async function getAllData(userID) { - const storeName = `${storeNameBase}_${userID}`; const db = await openDatabase(userID); - const transaction = db.transaction(storeName, "readonly"); - const store = transaction.objectStore(storeName); + const transaction = db.transaction(postStoreName, "readonly"); + const store = transaction.objectStore(postStoreName); return new Promise((resolve, reject) => { const getRequest = store.getAll(); getRequest.onsuccess = () => { diff --git a/db.js.map b/db.js.map index cf3a6de..13e952c 100644 --- a/db.js.map +++ b/db.js.map @@ -1 +1 @@ -{"version":3,"file":"db.js","sourceRoot":"","sources":["src/db.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,gBAAgB;AAChB,kBAAkB;AAClB,mBAAmB;AACnB,IAAI;AAEJ,MAAM,MAAM,GAAW,MAAM,CAAC;AAC9B,MAAM,aAAa,GAAW,OAAO,CAAC;AACtC,IAAI,OAAO,GAAG,qBAAqB,CAAA;AACnC,IAAI,GAAG,GAAG,EAAE,CAAC;AAYb,MAAM,UAAU,YAAY,CAAC,MAAa;IACtC,MAAM,SAAS,GAAG,GAAG,aAAa,IAAI,MAAM,EAAE,CAAC;IAE/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,OAAO,GAAqB,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE5D,OAAO,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YAC/B,mFAAmF;YACnF,MAAM,UAAU,GAAG,KAAwB,CAAC;YAC5C,MAAM,CAAC,mBAAmB,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC;QAEF,OAAO,CAAC,eAAe,GAAG,CAAC,KAA4B,EAAE,EAAE;YACvD,MAAM,EAAE,GAAiB,KAAK,CAAC,MAA2B,CAAC,MAAM,CAAC;YAClE,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,IAAI,KAAK,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpF,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxE,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvE,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,CAAC,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE;YACjC,MAAM,EAAE,GAAiB,KAAK,CAAC,MAA2B,CAAC,MAAM,CAAC;YAClE,OAAO,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAc,EAAE,IAAS;IACnD,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,aAAa,IAAI,MAAM,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,EAAC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,CAAC;QAE/E,UAAU,CAAC,SAAS,GAAG,CAAC,CAAQ,EAAE,EAAE;YAChC,wEAAwE;QAC5E,CAAC,CAAC;QAEF,UAAU,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YAClC,mFAAmF;YACnF,MAAM,UAAU,GAAG,KAAwB,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,KAAY;IAC3D,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,aAAa,IAAI,MAAM,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEjD,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,EAAC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,CAAC;YAC/E,UAAU,CAAC,SAAS,GAAG,CAAC,CAAQ,EAAE,EAAE;gBAChC,wEAAwE;YAC5E,CAAC,CAAC;YAEF,UAAU,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;gBAClC,mFAAmF;gBACnF,MAAM,UAAU,GAAG,KAAwB,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC7E,CAAC,CAAC;YAEF,KAAK,EAAE,CAAC;YAER,2BAA2B;YAC3B,8CAA8C;YAC9C,IAAI;QACR,CAAC;IAGL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAa,EAAE,OAAY,EAAE,OAAY;IACnE,MAAM,SAAS,GAAG,GAAG,aAAa,IAAI,MAAM,EAAE,CAAC;IAC/C,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAU,EAAE,CAAC;QAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAG3C,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAEtD,aAAa,CAAC,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE;YACvC,MAAM,MAAM,GAAI,KAAK,CAAC,MAAqB,CAAC,MAA4B,CAAC;YACzE,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;gBACtD,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,qCAAqC;YAC5D,CAAC;iBAAM,CAAC;gBACJ,+BAA+B;gBAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;QACL,CAAC,CAAC;QAEF,aAAa,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YACrC,mFAAmF;YACnF,MAAM,UAAU,GAAG,KAAwB,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACvE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,yCAAyC;QAC9E,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAa;IAC1C,MAAM,SAAS,GAAG,GAAG,aAAa,IAAI,MAAM,EAAE,CAAC;IAC/C,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAElC,UAAU,CAAC,SAAS,GAAG,GAAG,EAAE;YACxB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACpB,gEAAgE;gBAChE,8CAA8C;gBAC9C,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;gBACjD,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,0DAA0D;YAClF,CAAC;QACL,CAAC,CAAC;QAEF,UAAU,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YAClC,mFAAmF;YACnF,MAAM,UAAU,GAAG,KAAwB,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACvE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,yCAAyC;QAC9E,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"} \ No newline at end of file +{"version":3,"file":"db.js","sourceRoot":"","sources":["src/db.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/go.mod b/go.mod index 191a393..f20245f 100644 --- a/go.mod +++ b/go.mod @@ -21,6 +21,14 @@ require ( ) require ( + github.com/pion/stun v0.6.1 github.com/quic-go/qpack v0.4.0 // indirect golang.org/x/text v0.13.0 // indirect ) + +require ( + github.com/andybalholm/brotli v1.1.0 + github.com/pion/dtls/v2 v2.2.7 // indirect + github.com/pion/logging v0.2.2 // indirect + github.com/pion/transport/v2 v2.2.1 // indirect +) diff --git a/go.sum b/go.sum index 9648151..ad0a2aa 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= +github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -12,29 +14,79 @@ github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZH github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q= github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k= +github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= +github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= +github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= +github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= +github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4= +github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8= +github.com/pion/transport/v2 v2.2.1 h1:7qYnCBlpgSJNYMbLCKuSY9KbQdBFoETvPNETv0y4N7c= +github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= github.com/quic-go/quic-go v0.42.0 h1:uSfdap0eveIl8KXnipv9K7nlwZ5IqLlYOpJ58u5utpM= github.com/quic-go/quic-go v0.42.0/go.mod h1:132kz4kL3F9vxhW3CtQJLDVwcFe5wdWeJXXijhsO57M= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db h1:D/cFflL63o2KSLJIwjlcIt8PR064j/xsmdEJL/YvY/o= golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo= golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/icons/dandelion_512x512.png b/icons/dandelion_512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..cdf0fcde7d5636b7f1f29d1f949e0084aab77663 GIT binary patch literal 6034 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

  • kb@?iSkAhRwiAHtE15=jm9V%ZJuIN%_qg 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 a>CjU0tmmu}TL6E4=dU&X&*AfP^8WzuchLj@ literal 0 HcmV?d00001 diff --git a/images/screenshot1.png b/images/screenshot1.png new file mode 100644 index 0000000000000000000000000000000000000000..28c3c2d2875944d4ff44d94939f46d4845587746 GIT binary patch literal 211483 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%0DlpAJTUCgk46C9W__*Eip<=> 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∨MoW~95&z?HXJ-Q++!zz6aWW+Lx6{a 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%0DRNT=YgD`feM7Ct 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

    a~$;>EP_XQiKp3 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Ÿ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

    +
    +
    -
    - - - - -
    - + + + +
    + + + + + +
    + + +
    + +
    +
    diff --git a/lib/lottie.min.js b/lib/lottie.min.js new file mode 100644 index 0000000..db3599b --- /dev/null +++ b/lib/lottie.min.js @@ -0,0 +1 @@ +"undefined"!=typeof navigator&&function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).lottie=e()}(this,(function(){"use strict";var svgNS="http://www.w3.org/2000/svg",locationHref="",_useWebWorker=!1,initialDefaultFrame=-999999,setWebWorker=function(t){_useWebWorker=!!t},getWebWorker=function(){return _useWebWorker},setLocationHref=function(t){locationHref=t},getLocationHref=function(){return locationHref};function createTag(t){return document.createElement(t)}function extendPrototype(t,e){var i,r,s=t.length;for(i=0;i1?i[1]=1:i[1]<=0&&(i[1]=0),HSVtoRGB(i[0],i[1],i[2])}function addBrightnessToRGB(t,e){var i=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return i[2]+=e,i[2]>1?i[2]=1:i[2]<0&&(i[2]=0),HSVtoRGB(i[0],i[1],i[2])}function addHueToRGB(t,e){var i=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return i[0]+=e/360,i[0]>1?i[0]-=1:i[0]<0&&(i[0]+=1),HSVtoRGB(i[0],i[1],i[2])}var rgbToHex=function(){var t,e,i=[];for(t=0;t<256;t+=1)e=t.toString(16),i[t]=1===e.length?"0"+e:e;return function(t,e,r){return t<0&&(t=0),e<0&&(e=0),r<0&&(r=0),"#"+i[t]+i[e]+i[r]}}(),setSubframeEnabled=function(t){subframeEnabled=!!t},getSubframeEnabled=function(){return subframeEnabled},setExpressionsPlugin=function(t){expressionsPlugin=t},getExpressionsPlugin=function(){return expressionsPlugin},setExpressionInterfaces=function(t){expressionsInterfaces=t},getExpressionInterfaces=function(){return expressionsInterfaces},setDefaultCurveSegments=function(t){defaultCurveSegments=t},getDefaultCurveSegments=function(){return defaultCurveSegments},setIdPrefix=function(t){idPrefix$1=t},getIdPrefix=function(){return idPrefix$1};function createNS(t){return document.createElementNS(svgNS,t)}function _typeof$5(t){return _typeof$5="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof$5(t)}var dataManager=function(){var t,e,i=1,r=[],s={onmessage:function(){},postMessage:function(e){t({data:e})}},a={postMessage:function(t){s.onmessage({data:t})}};function n(){e||(e=function(e){if(window.Worker&&window.Blob&&getWebWorker()){var i=new Blob(["var _workerSelf = self; self.onmessage = ",e.toString()],{type:"text/javascript"}),r=URL.createObjectURL(i);return new Worker(r)}return t=e,s}((function(t){if(a.dataManager||(a.dataManager=function(){function t(s,a){var n,o,h,l,p,m,c=s.length;for(o=0;o=0;e-=1)if("sh"===t[e].ty)if(t[e].ks.k.i)r(t[e].ks.k);else for(a=t[e].ks.k.length,s=0;si[0]||!(i[0]>t[0])&&(t[1]>i[1]||!(i[1]>t[1])&&(t[2]>i[2]||!(i[2]>t[2])&&null))}var a,n=function(){var t=[4,4,14];function e(t){var e,i,r,s=t.length;for(e=0;e=0;i-=1)if("sh"===t[i].ty)if(t[i].ks.k.i)t[i].ks.k.c=t[i].closed;else for(s=t[i].ks.k.length,r=0;r500)&&(this._imageLoaded(),clearInterval(i)),e+=1}.bind(this),50)}function a(t){var e={assetData:t},i=r(t,this.assetsPath,this.path);return dataManager.loadData(i,function(t){e.img=t,this._footageLoaded()}.bind(this),function(){e.img={},this._footageLoaded()}.bind(this)),e}function n(){this._imageLoaded=e.bind(this),this._footageLoaded=i.bind(this),this.testImageLoaded=s.bind(this),this.createFootageData=a.bind(this),this.assetsPath="",this.path="",this.totalImages=0,this.totalFootages=0,this.loadedAssets=0,this.loadedFootagesCount=0,this.imagesLoadedCb=null,this.images=[]}return n.prototype={loadAssets:function(t,e){var i;this.imagesLoadedCb=e;var r=t.length;for(i=0;ithis.animationData.op&&(this.animationData.op=t.op,this.totalFrames=Math.floor(t.op-this.animationData.ip));var e,i,r=this.animationData.layers,s=r.length,a=t.layers,n=a.length;for(i=0;ithis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame(),this.trigger("drawnFrame")},AnimationItem.prototype.renderFrame=function(){if(!1!==this.isLoaded&&this.renderer)try{this.expressionsPlugin&&this.expressionsPlugin.resetFrame(),this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(t){this.triggerRenderFrameError(t)}},AnimationItem.prototype.play=function(t){t&&this.name!==t||!0===this.isPaused&&(this.isPaused=!1,this.trigger("_play"),this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(t){t&&this.name!==t||!1===this.isPaused&&(this.isPaused=!0,this.trigger("_pause"),this._idle=!0,this.trigger("_idle"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(t){t&&this.name!==t||(!0===this.isPaused?this.play():this.pause())},AnimationItem.prototype.stop=function(t){t&&this.name!==t||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(t){for(var e,i=0;i=this.totalFrames-1&&this.frameModifier>0?this.loop&&this.playCount!==this.loop?e>=this.totalFrames?(this.playCount+=1,this.checkSegments(e%this.totalFrames)||(this.setCurrentRawFrameValue(e%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(e):this.checkSegments(e>this.totalFrames?e%this.totalFrames:0)||(i=!0,e=this.totalFrames-1):e<0?this.checkSegments(e%this.totalFrames)||(!this.loop||this.playCount--<=0&&!0!==this.loop?(i=!0,e=0):(this.setCurrentRawFrameValue(this.totalFrames+e%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0)):this.setCurrentRawFrameValue(e),i&&(this.setCurrentRawFrameValue(e),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(t,e){this.playCount=0,t[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=t[0]-t[1],this.timeCompleted=this.totalFrames,this.firstFrame=t[1],this.setCurrentRawFrameValue(this.totalFrames-.001-e)):t[1]>t[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=t[1]-t[0],this.timeCompleted=this.totalFrames,this.firstFrame=t[0],this.setCurrentRawFrameValue(.001+e)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(t,e){var i=-1;this.isPaused&&(this.currentRawFrame+this.firstFramee&&(i=e-t)),this.firstFrame=t,this.totalFrames=e-t,this.timeCompleted=this.totalFrames,-1!==i&&this.goToAndStop(i,!0)},AnimationItem.prototype.playSegments=function(t,e){if(e&&(this.segments.length=0),"object"===_typeof$4(t[0])){var i,r=t.length;for(i=0;i=0;i-=1)e[i].animation.destroy(t)},t.freeze=function(){n=!0},t.unfreeze=function(){n=!1,d()},t.setVolume=function(t,i){var s;for(s=0;s=.001?function(t,e,i,r){for(var s=0;s<4;++s){var a=h(e,i,r);if(0===a)return e;e-=(o(e,i,r)-t)/a}return e}(t,l,e,r):0===p?l:function(t,e,i,r,s){var a,n,h=0;do{(a=o(n=e+(i-e)/2,r,s)-t)>0?i=n:e=n}while(Math.abs(a)>1e-7&&++h<10);return n}(t,a,a+i,e,r)}},t}(),pooling={double:function(t){return t.concat(createSizedArray(t.length))}},poolFactory=function(t,e,i){var r=0,s=t,a=createSizedArray(s);return{newElement:function(){return r?a[r-=1]:e()},release:function(t){r===s&&(a=pooling.double(a),s*=2),i&&i(t),a[r]=t,r+=1}}},bezierLengthPool=poolFactory(8,(function(){return{addedLength:0,percents:createTypedArray("float32",getDefaultCurveSegments()),lengths:createTypedArray("float32",getDefaultCurveSegments())}})),segmentsLengthPool=poolFactory(8,(function(){return{lengths:[],totalLength:0}}),(function(t){var e,i=t.lengths.length;for(e=0;e-.001&&n<.001}var i=function(t,e,i,r){var s,a,n,o,h,l,p=getDefaultCurveSegments(),f=0,m=[],c=[],d=bezierLengthPool.newElement();for(n=i.length,s=0;sn?-1:1,l=!0;l;)if(r[a]<=n&&r[a+1]>n?(o=(n-r[a])/(r[a+1]-r[a]),l=!1):a+=h,a<0||a>=s-1){if(a===s-1)return i[a];l=!1}return i[a]+(i[a+1]-i[a])*o}var h=createTypedArray("float32",8);return{getSegmentsLength:function(t){var e,r=segmentsLengthPool.newElement(),s=t.c,a=t.v,n=t.o,o=t.i,h=t._length,l=r.lengths,p=0;for(e=0;e1&&(a=1);var p,f=o(a,l),m=o(n=n>1?1:n,l),c=e.length,d=1-f,u=1-m,y=d*d*d,g=f*d*d*3,v=f*f*d*3,b=f*f*f,x=d*d*u,P=f*d*u+d*f*u+d*d*m,E=f*f*u+d*f*m+f*d*m,S=f*f*m,C=d*u*u,_=f*u*u+d*m*u+d*u*m,A=f*m*u+d*m*m+f*u*m,T=f*m*m,M=u*u*u,k=m*u*u+u*m*u+u*u*m,D=m*m*u+u*m*m+m*u*m,F=m*m*m;for(p=0;pc?m>d?m-c-d:d-c-m:d>c?d-c-m:c-m-d)>-1e-4&&f<1e-4}}}var bez=bezFunction(),initFrame=initialDefaultFrame,mathAbs=Math.abs;function interpolateValue(t,e){var i,r=this.offsetTime;"multidimensional"===this.propType&&(i=createTypedArray("float32",this.pv.length));for(var s,a,n,o,h,l,p,f,m,c=e.lastIndex,d=c,u=this.keyframes.length-1,y=!0;y;){if(s=this.keyframes[d],a=this.keyframes[d+1],d===u-1&&t>=a.t-r){s.h&&(s=a),c=0;break}if(a.t-r>t){c=d;break}d=v||t=v?x.points.length-1:0;for(h=x.points[P].point.length,o=0;o=C&&S=v)i[0]=g[0],i[1]=g[1],i[2]=g[2];else if(t<=b)i[0]=s.s[0],i[1]=s.s[1],i[2]=s.s[2];else{quaternionToEuler(i,slerp(createQuaternion(s.s),createQuaternion(g),(t-b)/(v-b)))}else for(d=0;d=v?l=1:t1e-6?(r=Math.acos(s),a=Math.sin(r),n=Math.sin((1-i)*r)/a,o=Math.sin(i*r)/a):(n=1-i,o=i),h[0]=n*l+o*c,h[1]=n*p+o*d,h[2]=n*f+o*u,h[3]=n*m+o*y,h}function quaternionToEuler(t,e){var i=e[0],r=e[1],s=e[2],a=e[3],n=Math.atan2(2*r*a-2*i*s,1-2*r*r-2*s*s),o=Math.asin(2*i*r+2*s*a),h=Math.atan2(2*i*a-2*r*s,1-2*i*i-2*s*s);t[0]=n/degToRads,t[1]=o/degToRads,t[2]=h/degToRads}function createQuaternion(t){var e=t[0]*degToRads,i=t[1]*degToRads,r=t[2]*degToRads,s=Math.cos(e/2),a=Math.cos(i/2),n=Math.cos(r/2),o=Math.sin(e/2),h=Math.sin(i/2),l=Math.sin(r/2);return[o*h*n+s*a*l,o*a*n+s*h*l,s*h*n-o*a*l,s*a*n-o*h*l]}function getValueAtCurrentTime(){var t=this.comp.renderedFrame-this.offsetTime,e=this.keyframes[0].t-this.offsetTime,i=this.keyframes[this.keyframes.length-1].t-this.offsetTime;if(!(t===this._caching.lastFrame||this._caching.lastFrame!==initFrame&&(this._caching.lastFrame>=i&&t>=i||this._caching.lastFrame=t&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var r=this.interpolateValue(t,this._caching);this.pv=r}return this._caching.lastFrame=t,this.pv}function setVValue(t){var e;if("unidimensional"===this.propType)e=t*this.mult,mathAbs(this.v-e)>1e-5&&(this.v=e,this._mdf=!0);else for(var i=0,r=this.v.length;i1e-5&&(this.v[i]=e,this._mdf=!0),i+=1}function processEffectsSequence(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{var t;this.lock=!0,this._mdf=this._isFirstFrame;var e=this.effectsSequence.length,i=this.kf?this.pv:this.data.k;for(t=0;t=this._maxLength&&this.doubleArrayLength(),i){case"v":a=this.v;break;case"i":a=this.i;break;case"o":a=this.o;break;default:a=[]}(!a[r]||a[r]&&!s)&&(a[r]=pointPool.newElement()),a[r][0]=t,a[r][1]=e},ShapePath.prototype.setTripleAt=function(t,e,i,r,s,a,n,o){this.setXYAt(t,e,"v",n,o),this.setXYAt(i,r,"o",n,o),this.setXYAt(s,a,"i",n,o)},ShapePath.prototype.reverse=function(){var t=new ShapePath;t.setPathData(this.c,this._length);var e=this.v,i=this.o,r=this.i,s=0;this.c&&(t.setTripleAt(e[0][0],e[0][1],r[0][0],r[0][1],i[0][0],i[0][1],0,!1),s=1);var a,n=this._length-1,o=this._length;for(a=s;a=c[c.length-1].t-this.offsetTime)r=c[c.length-1].s?c[c.length-1].s[0]:c[c.length-2].e[0],a=!0;else{for(var d,u,y,g=m,v=c.length-1,b=!0;b&&(d=c[g],!((u=c[g+1]).t-this.offsetTime>t));)g=u.t-this.offsetTime)p=1;else if(tr&&e>r)||(this._caching.lastIndex=s0||t>-1e-6&&t<0?r(1e4*t)/1e4:t}function I(){var t=this.props;return"matrix("+w(t[0])+","+w(t[1])+","+w(t[4])+","+w(t[5])+","+w(t[12])+","+w(t[13])+")"}return function(){this.reset=s,this.rotate=a,this.rotateX=n,this.rotateY=o,this.rotateZ=h,this.skew=p,this.skewFromAxis=f,this.shear=l,this.scale=m,this.setTransform=c,this.translate=d,this.transform=u,this.multiply=y,this.applyToPoint=P,this.applyToX=E,this.applyToY=S,this.applyToZ=C,this.applyToPointArray=k,this.applyToTriplePoints=M,this.applyToPointStringified=D,this.toCSS=F,this.to2dCSS=I,this.clone=b,this.cloneFromProps=x,this.equals=v,this.inversePoints=T,this.inversePoint=A,this.getInverseMatrix=_,this._t=this.transform,this.isIdentity=g,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}();function _typeof$3(t){return _typeof$3="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof$3(t)}var lottie={},standalone="__[STANDALONE]__",animationData="__[ANIMATIONDATA]__",renderer="";function setLocation(t){setLocationHref(t)}function searchAnimations(){!0===standalone?animationManager.searchAnimations(animationData,standalone,renderer):animationManager.searchAnimations()}function setSubframeRendering(t){setSubframeEnabled(t)}function setPrefix(t){setIdPrefix(t)}function loadAnimation(t){return!0===standalone&&(t.animationData=JSON.parse(animationData)),animationManager.loadAnimation(t)}function setQuality(t){if("string"==typeof t)switch(t){case"high":setDefaultCurveSegments(200);break;default:case"medium":setDefaultCurveSegments(50);break;case"low":setDefaultCurveSegments(10)}else!isNaN(t)&&t>1&&setDefaultCurveSegments(t);getDefaultCurveSegments()>=50?roundValues(!1):roundValues(!0)}function inBrowser(){return"undefined"!=typeof navigator}function installPlugin(t,e){"expressions"===t&&setExpressionsPlugin(e)}function getFactory(t){switch(t){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix;default:return null}}function checkReady(){"complete"===document.readyState&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(t){for(var e=queryString.split("&"),i=0;i=1?a.push({s:t-1,e:e-1}):(a.push({s:t,e:1}),a.push({s:0,e:e-1}));var n,o,h=[],l=a.length;for(n=0;nr+i))p=o.s*s<=r?0:(o.s*s-r)/i,f=o.e*s>=r+i?1:(o.e*s-r)/i,h.push([p,f])}return h.length||h.push([0,0]),h},TrimModifier.prototype.releasePathsData=function(t){var e,i=t.length;for(e=0;e1?1+a:this.s.v<0?0+a:this.s.v+a)>(i=this.e.v>1?1+a:this.e.v<0?0+a:this.e.v+a)){var n=e;e=i,i=n}e=1e-4*Math.round(1e4*e),i=1e-4*Math.round(1e4*i),this.sValue=e,this.eValue=i}else e=this.sValue,i=this.eValue;var o,h,l,p,f,m=this.shapes.length,c=0;if(i===e)for(s=0;s=0;s-=1)if((d=this.shapes[s]).shape._mdf){for((u=d.localShapeCollection).releaseShapes(),2===this.m&&m>1?(g=this.calculateShapeEdges(e,i,d.totalShapeLength,x,c),x+=d.totalShapeLength):g=[[v,b]],h=g.length,o=0;o=1?y.push({s:d.totalShapeLength*(v-1),e:d.totalShapeLength*(b-1)}):(y.push({s:d.totalShapeLength*v,e:d.totalShapeLength}),y.push({s:0,e:d.totalShapeLength*(b-1)}));var P=this.addShapes(d,y[0]);if(y[0].s!==y[0].e){if(y.length>1)if(d.shape.paths.shapes[d.shape.paths._length-1].c){var E=P.pop();this.addPaths(P,u),P=this.addShapes(d,y[1],E)}else this.addPaths(P,u),P=this.addShapes(d,y[1]);this.addPaths(P,u)}}d.shape.paths=u}}},TrimModifier.prototype.addPaths=function(t,e){var i,r=t.length;for(i=0;ie.e){i.c=!1;break}e.s<=d&&e.e>=d+n.addedLength?(this.addSegment(m[r].v[s-1],m[r].o[s-1],m[r].i[s],m[r].v[s],i,o,y),y=!1):(l=bez.getNewSegment(m[r].v[s-1],m[r].v[s],m[r].o[s-1],m[r].i[s],(e.s-d)/n.addedLength,(e.e-d)/n.addedLength,h[s-1]),this.addSegmentFromArray(l,i,o,y),y=!1,i.c=!1),d+=n.addedLength,o+=1}if(m[r].c&&h.length){if(n=h[s-1],d<=e.e){var g=h[s-1].addedLength;e.s<=d&&e.e>=d+g?(this.addSegment(m[r].v[s-1],m[r].o[s-1],m[r].i[0],m[r].v[0],i,o,y),y=!1):(l=bez.getNewSegment(m[r].v[s-1],m[r].v[0],m[r].o[s-1],m[r].i[0],(e.s-d)/g,(e.e-d)/g,h[s-1]),this.addSegmentFromArray(l,i,o,y),y=!1,i.c=!1)}else i.c=!1;d+=n.addedLength,o+=1}if(i._length&&(i.setXYAt(i.v[p][0],i.v[p][1],"i",p),i.setXYAt(i.v[i._length-1][0],i.v[i._length-1][1],"o",i._length-1)),d>e.e)break;r=this.p.keyframes[this.p.keyframes.length-1].t?(r=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/i,0),s=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/i,0)):(r=this.p.pv,s=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/i,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){r=[],s=[];var a=this.px,n=this.py;a._caching.lastFrame+a.offsetTime<=a.keyframes[0].t?(r[0]=a.getValueAtTime((a.keyframes[0].t+.01)/i,0),r[1]=n.getValueAtTime((n.keyframes[0].t+.01)/i,0),s[0]=a.getValueAtTime(a.keyframes[0].t/i,0),s[1]=n.getValueAtTime(n.keyframes[0].t/i,0)):a._caching.lastFrame+a.offsetTime>=a.keyframes[a.keyframes.length-1].t?(r[0]=a.getValueAtTime(a.keyframes[a.keyframes.length-1].t/i,0),r[1]=n.getValueAtTime(n.keyframes[n.keyframes.length-1].t/i,0),s[0]=a.getValueAtTime((a.keyframes[a.keyframes.length-1].t-.01)/i,0),s[1]=n.getValueAtTime((n.keyframes[n.keyframes.length-1].t-.01)/i,0)):(r=[a.pv,n.pv],s[0]=a.getValueAtTime((a._caching.lastFrame+a.offsetTime-.01)/i,a.offsetTime),s[1]=n.getValueAtTime((n._caching.lastFrame+n.offsetTime-.01)/i,n.offsetTime))}else r=s=t;this.v.rotate(-Math.atan2(r[1]-s[1],r[0]-s[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(this.appliedTransformations=0,this.pre.reset(),!this.a.effectsSequence.length&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],e),e.prototype.addDynamicProperty=function(t){this._addDynamicProperty(t),this.elem.addDynamicProperty(t),this._isDirty=!0},e.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(t,i,r){return new e(t,i,r)}}}();function RepeaterModifier(){}function RoundCornersModifier(){}function floatEqual(t,e){return 1e5*Math.abs(t-e)<=Math.min(Math.abs(t),Math.abs(e))}function floatZero(t){return Math.abs(t)<=1e-5}function lerp(t,e,i){return t*(1-i)+e*i}function lerpPoint(t,e,i){return[lerp(t[0],e[0],i),lerp(t[1],e[1],i)]}function quadRoots(t,e,i){if(0===t)return[];var r=e*e-4*t*i;if(r<0)return[];var s=-e/(2*t);if(0===r)return[s];var a=Math.sqrt(r)/(2*t);return[s-a,s+a]}function polynomialCoefficients(t,e,i,r){return[3*e-t-3*i+r,3*t-6*e+3*i,-3*t+3*e,t]}function singlePoint(t){return new PolynomialBezier(t,t,t,t,!1)}function PolynomialBezier(t,e,i,r,s){s&&pointEqual(t,e)&&(e=lerpPoint(t,r,1/3)),s&&pointEqual(i,r)&&(i=lerpPoint(t,r,2/3));var a=polynomialCoefficients(t[0],e[0],i[0],r[0]),n=polynomialCoefficients(t[1],e[1],i[1],r[1]);this.a=[a[0],n[0]],this.b=[a[1],n[1]],this.c=[a[2],n[2]],this.d=[a[3],n[3]],this.points=[t,e,i,r]}function extrema(t,e){var i=t.points[0][e],r=t.points[t.points.length-1][e];if(i>r){var s=r;r=i,i=s}for(var a=quadRoots(3*t.a[e],2*t.b[e],t.c[e]),n=0;n0&&a[n]<1){var o=t.point(a[n])[e];or&&(r=o)}return{min:i,max:r}}function intersectData(t,e,i){var r=t.boundingBox();return{cx:r.cx,cy:r.cy,width:r.width,height:r.height,bez:t,t:(e+i)/2,t1:e,t2:i}}function splitData(t){var e=t.bez.split(.5);return[intersectData(e[0],t.t1,t.t),intersectData(e[1],t.t,t.t2)]}function boxIntersect(t,e){return 2*Math.abs(t.cx-e.cx)=a||t.width<=r&&t.height<=r&&e.width<=r&&e.height<=r)s.push([t.t,e.t]);else{var n=splitData(t),o=splitData(e);intersectsImpl(n[0],o[0],i+1,r,s,a),intersectsImpl(n[0],o[1],i+1,r,s,a),intersectsImpl(n[1],o[0],i+1,r,s,a),intersectsImpl(n[1],o[1],i+1,r,s,a)}}function crossProduct(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function lineIntersection(t,e,i,r){var s=[t[0],t[1],1],a=[e[0],e[1],1],n=[i[0],i[1],1],o=[r[0],r[1],1],h=crossProduct(crossProduct(s,a),crossProduct(n,o));return floatZero(h[2])?null:[h[0]/h[2],h[1]/h[2]]}function polarOffset(t,e,i){return[t[0]+Math.cos(e)*i,t[1]-Math.sin(e)*i]}function pointDistance(t,e){return Math.hypot(t[0]-e[0],t[1]-e[1])}function pointEqual(t,e){return floatEqual(t[0],e[0])&&floatEqual(t[1],e[1])}function ZigZagModifier(){}function setPoint(t,e,i,r,s,a,n){var o=i-Math.PI/2,h=i+Math.PI/2,l=e[0]+Math.cos(i)*r*s,p=e[1]-Math.sin(i)*r*s;t.setTripleAt(l,p,l+Math.cos(o)*a,p-Math.sin(o)*a,l+Math.cos(h)*n,p-Math.sin(h)*n,t.length())}function getPerpendicularVector(t,e){var i=[e[0]-t[0],e[1]-t[1]],r=.5*-Math.PI;return[Math.cos(r)*i[0]-Math.sin(r)*i[1],Math.sin(r)*i[0]+Math.cos(r)*i[1]]}function getProjectingAngle(t,e){var i=0===e?t.length()-1:e-1,r=(e+1)%t.length(),s=getPerpendicularVector(t.v[i],t.v[r]);return Math.atan2(0,1)-Math.atan2(s[1],s[0])}function zigZagCorner(t,e,i,r,s,a,n){var o=getProjectingAngle(e,i),h=e.v[i%e._length],l=e.v[0===i?e._length-1:i-1],p=e.v[(i+1)%e._length],f=2===a?Math.sqrt(Math.pow(h[0]-l[0],2)+Math.pow(h[1]-l[1],2)):0,m=2===a?Math.sqrt(Math.pow(h[0]-p[0],2)+Math.pow(h[1]-p[1],2)):0;setPoint(t,e.v[i%e._length],o,n,r,m/(2*(s+1)),f/(2*(s+1)),a)}function zigZagSegment(t,e,i,r,s,a){for(var n=0;n1&&e.length>1&&(s=getIntersection(t[0],e[e.length-1]))?[[t[0].split(s[0])[0]],[e[e.length-1].split(s[1])[1]]]:[i,r]}function pruneIntersections(t){for(var e,i=1;i1&&(e=pruneSegmentIntersection(t[t.length-1],t[0]),t[t.length-1]=e[0],t[0]=e[1]),t}function offsetSegmentSplit(t,e){var i,r,s,a,n=t.inflectionPoints();if(0===n.length)return[offsetSegment(t,e)];if(1===n.length||floatEqual(n[1],1))return i=(s=t.split(n[0]))[0],r=s[1],[offsetSegment(i,e),offsetSegment(r,e)];i=(s=t.split(n[0]))[0];var o=(n[1]-n[0])/(1-n[0]);return a=(s=s[1].split(o))[0],r=s[1],[offsetSegment(i,e),offsetSegment(a,e),offsetSegment(r,e)]}function OffsetPathModifier(){}function getFontProperties(t){for(var e=t.fStyle?t.fStyle.split(" "):[],i="normal",r="normal",s=e.length,a=0;a0;)i-=1,this._elements.unshift(e[i]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(t){var e,i=t.length;for(e=0;e0?Math.floor(m):Math.ceil(m),u=this.pMatrix.props,y=this.rMatrix.props,g=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var v,b,x=0;if(m>0){for(;xd;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),x-=1;c&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-c,!0),x-=c)}for(r=1===this.data.m?0:this._currentCopies-1,s=1===this.data.m?1:-1,a=this._currentCopies;a;){if(b=(i=(e=this.elemsData[r].it)[e.length-1].transform.mProps.v.props).length,e[e.length-1].transform.mProps._mdf=!0,e[e.length-1].transform.op._mdf=!0,e[e.length-1].transform.op.v=1===this._currentCopies?this.so.v:this.so.v+(this.eo.v-this.so.v)*(r/(this._currentCopies-1)),0!==x){for((0!==r&&1===s||r!==this._currentCopies-1&&-1===s)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(y[0],y[1],y[2],y[3],y[4],y[5],y[6],y[7],y[8],y[9],y[10],y[11],y[12],y[13],y[14],y[15]),this.matrix.transform(g[0],g[1],g[2],g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15]),this.matrix.transform(u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],u[8],u[9],u[10],u[11],u[12],u[13],u[14],u[15]),v=0;v0&&r<1?[e]:[]:[e-r,e+r].filter((function(t){return t>0&&t<1}))},PolynomialBezier.prototype.split=function(t){if(t<=0)return[singlePoint(this.points[0]),this];if(t>=1)return[this,singlePoint(this.points[this.points.length-1])];var e=lerpPoint(this.points[0],this.points[1],t),i=lerpPoint(this.points[1],this.points[2],t),r=lerpPoint(this.points[2],this.points[3],t),s=lerpPoint(e,i,t),a=lerpPoint(i,r,t),n=lerpPoint(s,a,t);return[new PolynomialBezier(this.points[0],e,s,n,!0),new PolynomialBezier(n,a,r,this.points[3],!0)]},PolynomialBezier.prototype.bounds=function(){return{x:extrema(this,0),y:extrema(this,1)}},PolynomialBezier.prototype.boundingBox=function(){var t=this.bounds();return{left:t.x.min,right:t.x.max,top:t.y.min,bottom:t.y.max,width:t.x.max-t.x.min,height:t.y.max-t.y.min,cx:(t.x.max+t.x.min)/2,cy:(t.y.max+t.y.min)/2}},PolynomialBezier.prototype.intersections=function(t,e,i){void 0===e&&(e=2),void 0===i&&(i=7);var r=[];return intersectsImpl(intersectData(this,0,1),intersectData(t,0,1),0,e,r,i),r},PolynomialBezier.shapeSegment=function(t,e){var i=(e+1)%t.length();return new PolynomialBezier(t.v[e],t.o[e],t.i[i],t.v[i],!0)},PolynomialBezier.shapeSegmentInverted=function(t,e){var i=(e+1)%t.length();return new PolynomialBezier(t.v[i],t.i[i],t.o[e],t.v[e],!0)},extendPrototype([ShapeModifier],ZigZagModifier),ZigZagModifier.prototype.initModifierProperties=function(t,e){this.getValue=this.processKeys,this.amplitude=PropertyFactory.getProp(t,e.s,0,null,this),this.frequency=PropertyFactory.getProp(t,e.r,0,null,this),this.pointsType=PropertyFactory.getProp(t,e.pt,0,null,this),this._isAnimated=0!==this.amplitude.effectsSequence.length||0!==this.frequency.effectsSequence.length||0!==this.pointsType.effectsSequence.length},ZigZagModifier.prototype.processPath=function(t,e,i,r){var s=t._length,a=shapePool.newElement();if(a.c=t.c,t.c||(s-=1),0===s)return a;var n=-1,o=PolynomialBezier.shapeSegment(t,0);zigZagCorner(a,t,0,e,i,r,n);for(var h=0;h=0;a-=1)o=PolynomialBezier.shapeSegmentInverted(t,a),l.push(offsetSegmentSplit(o,e));l=pruneIntersections(l);var p=null,f=null;for(a=0;a=55296&&i<=56319){var r=t.charCodeAt(1);r>=56320&&r<=57343&&(e=1024*(i-55296)+r-56320+65536)}return e}function o(t){var e=n(t);return e>=127462&&e<=127487}var h=function(){this.fonts=[],this.chars=null,this.typekitLoaded=0,this.isLoaded=!1,this._warned=!1,this.initTime=Date.now(),this.setIsLoadedBinded=this.setIsLoaded.bind(this),this.checkLoadedFontsBinded=this.checkLoadedFonts.bind(this)};h.isModifier=function(t,e){var i=t.toString(16)+e.toString(16);return-1!==r.indexOf(i)},h.isZeroWidthJoiner=function(t){return 8205===t},h.isFlagEmoji=function(t){return o(t.substr(0,2))&&o(t.substr(2,2))},h.isRegionalCode=o,h.isCombinedCharacter=function(t){return-1!==e.indexOf(t)},h.isRegionalFlag=function(t,e){var r=n(t.substr(e,2));if(r!==i)return!1;var s=0;for(e+=2;s<5;){if((r=n(t.substr(e,2)))<917601||r>917626)return!1;s+=1,e+=2}return 917631===n(t.substr(e,2))},h.isVariationSelector=function(t){return 65039===t},h.BLACK_FLAG_CODE_POINT=i;var l={addChars:function(t){if(t){var e;this.chars||(this.chars=[]);var i,r,s=t.length,a=this.chars.length;for(e=0;e0&&(p=!1),p){var f=createTag("style");f.setAttribute("f-forigin",r[i].fOrigin),f.setAttribute("f-origin",r[i].origin),f.setAttribute("f-family",r[i].fFamily),f.type="text/css",f.innerText="@font-face {font-family: "+r[i].fFamily+"; font-style: normal; src: url('"+r[i].fPath+"');}",e.appendChild(f)}}else if("g"===r[i].fOrigin||1===r[i].origin){for(h=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),l=0;lt?!0!==this.isInRange&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):!1!==this.isInRange&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var t,e=this.renderableComponents.length;for(t=0;t.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(t){this.audio.rate(t)},AudioElement.prototype.volume=function(t){this._volumeMultiplier=t,this._previousVolume=t*this._volume,this.audio.volume(this._previousVolume)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){},BaseRenderer.prototype.checkLayers=function(t){var e,i,r=this.layers.length;for(this.completeLayers=!0,e=r-1;e>=0;e-=1)this.elements[e]||(i=this.layers[e]).ip-i.st<=t-this.layers[e].st&&i.op-i.st>t-this.layers[e].st&&this.buildItem(e),this.completeLayers=!!this.elements[e]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(t){switch(t.ty){case 2:return this.createImage(t);case 0:return this.createComp(t);case 1:return this.createSolid(t);case 3:default:return this.createNull(t);case 4:return this.createShape(t);case 5:return this.createText(t);case 6:return this.createAudio(t);case 13:return this.createCamera(t);case 15:return this.createFootage(t)}},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.createAudio=function(t){return new AudioElement(t,this.globalData,this)},BaseRenderer.prototype.createFootage=function(t){return new FootageElement(t,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var t,e=this.layers.length;for(t=0;t0&&(this.maskElement.setAttribute("id",y),this.element.maskedElement.setAttribute(v,"url("+getLocationHref()+"#"+y+")"),a.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}TransformElement.prototype={initTransform:function(){var t=new Matrix;this.finalTransform={mProp:this.data.ks?TransformPropertyFactory.getTransformProperty(this,this.data.ks,this):{o:0},_matMdf:!1,_localMatMdf:!1,_opMdf:!1,mat:t,localMat:t,localOpacity:1},this.data.ao&&(this.finalTransform.mProp.autoOriented=!0),this.data.ty},renderTransform:function(){if(this.finalTransform._opMdf=this.finalTransform.mProp.o._mdf||this._isFirstFrame,this.finalTransform._matMdf=this.finalTransform.mProp._mdf||this._isFirstFrame,this.hierarchy){var t,e=this.finalTransform.mat,i=0,r=this.hierarchy.length;if(!this.finalTransform._matMdf)for(;i1&&(a+=" C"+e.o[r-1][0]+","+e.o[r-1][1]+" "+e.i[0][0]+","+e.i[0][1]+" "+e.v[0][0]+","+e.v[0][1]),i.lastPath!==a){var n="";i.elem&&(e.c&&(n=t.inv?this.solidPath+a:a),i.elem.setAttribute("d",n)),i.lastPath=a}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};var filtersFactory=function(){var t={};return t.createFilter=function(t,e){var i=createNS("filter");i.setAttribute("id",t),!0!==e&&(i.setAttribute("filterUnits","objectBoundingBox"),i.setAttribute("x","0%"),i.setAttribute("y","0%"),i.setAttribute("width","100%"),i.setAttribute("height","100%"));return i},t.createAlphaToLuminanceFilter=function(){var t=createNS("feColorMatrix");return t.setAttribute("type","matrix"),t.setAttribute("color-interpolation-filters","sRGB"),t.setAttribute("values","0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1"),t},t}(),featureSupport=function(){var t={maskType:!0,svgLumaHidden:!0,offscreenCanvas:"undefined"!=typeof OffscreenCanvas};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(t.maskType=!1),/firefox/i.test(navigator.userAgent)&&(t.svgLumaHidden=!1),t}(),registeredEffects$1={},idPrefix="filter_result_";function SVGEffects(t){var e,i,r="SourceGraphic",s=t.data.ef?t.data.ef.length:0,a=createElementID(),n=filtersFactory.createFilter(a,!0),o=0;for(this.filters=[],e=0;e=0&&!this.shapeModifiers[t].processShapes(this._isFirstFrame);t-=1);}},searchProcessedElement:function(t){for(var e=this.processedElements,i=0,r=e.length;i.01)return!1;i+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var t=0,e=this.data.k.k.length;t0;)h=r.transformers[d].mProps._mdf||h,c-=1,d-=1;if(h)for(c=y-r.styles[p].lvl,d=r.transformers.length-1;c>0;)m.multiply(r.transformers[d].mProps.v),c-=1,d-=1}else m=t;if(n=(f=r.sh.paths)._length,h){for(o="",a=0;a=1?v=.99:v<=-1&&(v=-.99);var b=o*v,x=Math.cos(g+e.a.v)*b+p[0],P=Math.sin(g+e.a.v)*b+p[1];h.setAttribute("fx",x),h.setAttribute("fy",P),l&&!e.g._collapsable&&(e.of.setAttribute("fx",x),e.of.setAttribute("fy",P))}}function h(t,e,i){var r=e.style,s=e.d;s&&(s._mdf||i)&&s.dashStr&&(r.pElem.setAttribute("stroke-dasharray",s.dashStr),r.pElem.setAttribute("stroke-dashoffset",s.dashoffset[0])),e.c&&(e.c._mdf||i)&&r.pElem.setAttribute("stroke","rgb("+bmFloor(e.c.v[0])+","+bmFloor(e.c.v[1])+","+bmFloor(e.c.v[2])+")"),(e.o._mdf||i)&&r.pElem.setAttribute("stroke-opacity",e.o.v),(e.w._mdf||i)&&(r.pElem.setAttribute("stroke-width",e.w.v),r.msElem&&r.msElem.setAttribute("stroke-width",e.w.v))}return{createRenderFunction:function(t){switch(t.ty){case"fl":return a;case"gf":return o;case"gs":return n;case"st":return h;case"sh":case"el":case"rc":case"sr":return s;case"tr":return i;case"no":return r;default:return null}}}}();function SVGShapeElement(t,e,i){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(t,e,i),this.prevViewData=[]}function LetterProps(t,e,i,r,s,a){this.o=t,this.sw=e,this.sc=i,this.fc=r,this.m=s,this.p=a,this._mdf={o:!0,sw:!!e,sc:!!i,fc:!!r,m:!0,p:!0}}function TextProperty(t,e){this._frameId=initialDefaultFrame,this.pv="",this.v="",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,e.d&&e.d.sid&&(e.d=t.globalData.slotManager.getProp(e.d)),this.data=e,this.elem=t,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:"",fStyle:"",fWeight:"",fc:"",j:"",justifyOffset:"",l:[],lh:0,lineWidths:[],ls:"",of:"",s:"",sc:"",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var t,e,i,r,s=this.shapes.length,a=this.stylesList.length,n=[],o=!1;for(i=0;i1&&o&&this.setShapesAsAnimated(n)}},SVGShapeElement.prototype.setShapesAsAnimated=function(t){var e,i=t.length;for(e=0;e=0;o-=1){if((m=this.searchProcessedElement(t[o]))?e[o]=i[m-1]:t[o]._render=n,"fl"===t[o].ty||"st"===t[o].ty||"gf"===t[o].ty||"gs"===t[o].ty||"no"===t[o].ty)m?e[o].style.closed=!1:e[o]=this.createStyleElement(t[o],s),t[o]._render&&e[o].style.pElem.parentNode!==r&&r.appendChild(e[o].style.pElem),u.push(e[o].style);else if("gr"===t[o].ty){if(m)for(l=e[o].it.length,h=0;h1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(t){this.effectsSequence.push(t),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(t){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||t){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var e=this.currentData,i=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{var r;this.lock=!0,this._mdf=!1;var s=this.effectsSequence.length,a=t||this.data.d.k[this.keysIndex].s;for(r=0;re);)i+=1;return this.keysIndex!==i&&(this.keysIndex=i),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(t){for(var e,i,r=[],s=0,a=t.length,n=!1,o=!1,h="";s=55296&&e<=56319?FontManager.isRegionalFlag(t,s)?h=t.substr(s,14):(i=t.charCodeAt(s+1))>=56320&&i<=57343&&(FontManager.isModifier(e,i)?(h=t.substr(s,2),n=!0):h=FontManager.isFlagEmoji(t.substr(s,4))?t.substr(s,4):t.substr(s,2)):e>56319?(i=t.charCodeAt(s+1),FontManager.isVariationSelector(e)&&(n=!0)):FontManager.isZeroWidthJoiner(e)&&(n=!0,o=!0),n?(r[r.length-1]+=h,n=!1):r.push(h),s+=h.length;return r},TextProperty.prototype.completeTextData=function(t){t.__complete=!0;var e,i,r,s,a,n,o,h=this.elem.globalData.fontManager,l=this.data,p=[],f=0,m=l.m.g,c=0,d=0,u=0,y=[],g=0,v=0,b=h.getFontByName(t.f),x=0,P=getFontProperties(b);t.fWeight=P.weight,t.fStyle=P.style,t.finalSize=t.s,t.finalText=this.buildFinalText(t.t),i=t.finalText.length,t.finalLineHeight=t.lh;var E,S=t.tr/1e3*t.finalSize;if(t.sz)for(var C,_,A=!0,T=t.sz[0],M=t.sz[1];A;){C=0,g=0,i=(_=this.buildFinalText(t.t)).length,S=t.tr/1e3*t.finalSize;var k=-1;for(e=0;eT&&" "!==_[e]?(-1===k?i+=1:e=k,C+=t.finalLineHeight||1.2*t.finalSize,_.splice(e,k===e?1:0,"\r"),k=-1,g=0):(g+=x,g+=S);C+=b.ascent*t.finalSize/100,this.canResize&&t.finalSize>this.minimumFontSize&&Mv?g:v,g=-2*S,s="",r=!0,u+=1):s=D,h.chars?(o=h.getCharData(D,b.fStyle,h.getFontByName(t.f).fFamily),x=r?0:o.w*t.finalSize/100):x=h.measureText(s,t.f,t.finalSize)," "===D?F+=x+S:(g+=x+S+F,F=0),p.push({l:x,an:x,add:c,n:r,anIndexes:[],val:s,line:u,animatorJustifyOffset:0}),2==m){if(c+=x,""===s||" "===s||e===i-1){for(""!==s&&" "!==s||(c-=x);d<=e;)p[d].an=c,p[d].ind=f,p[d].extra=x,d+=1;f+=1,c=0}}else if(3==m){if(c+=x,""===s||e===i-1){for(""===s&&(c-=x);d<=e;)p[d].an=c,p[d].ind=f,p[d].extra=x,d+=1;c=0,f+=1}}else p[f].ind=f,p[f].extra=0,f+=1;if(t.l=p,v=g>v?g:v,y.push(g),t.sz)t.boxWidth=t.sz[0],t.justifyOffset=0;else switch(t.boxWidth=v,t.j){case 1:t.justifyOffset=-t.boxWidth;break;case 2:t.justifyOffset=-t.boxWidth/2;break;default:t.justifyOffset=0}t.lineWidths=y;var w,I,V,B,R=l.a;n=R.length;var L=[];for(a=0;a0?s=this.ne.v/100:a=-this.ne.v/100,this.xe.v>0?n=1-this.xe.v/100:o=1+this.xe.v/100;var h=BezierFactory.getBezierEasing(s,a,n,o).get,l=0,p=this.finalS,f=this.finalE,m=this.data.sh;if(2===m)l=h(l=f===p?r>=f?1:0:t(0,e(.5/(f-p)+(r-p)/(f-p),1)));else if(3===m)l=h(l=f===p?r>=f?0:1:1-t(0,e(.5/(f-p)+(r-p)/(f-p),1)));else if(4===m)f===p?l=0:(l=t(0,e(.5/(f-p)+(r-p)/(f-p),1)))<.5?l*=2:l=1-2*(l-.5),l=h(l);else if(5===m){if(f===p)l=0;else{var c=f-p,d=-c/2+(r=e(t(0,r+.5-p),f-p)),u=c/2;l=Math.sqrt(1-d*d/(u*u))}l=h(l)}else 6===m?(f===p?l=0:(r=e(t(0,r+.5-p),f-p),l=(1+Math.cos(Math.PI+2*Math.PI*r/(f-p)))/2),l=h(l)):(r>=i(p)&&(l=t(0,e(r-p<0?e(f,1)-(p-r):f-r,1))),l=h(l));if(100!==this.sm.v){var y=.01*this.sm.v;0===y&&(y=1e-8);var g=.5-.5*y;l1&&(l=1)}return l*this.a.v},getValue:function(t){this.iterateDynamicProperties(),this._mdf=t||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,t&&2===this.data.r&&(this.e.v=this._currentTextLength);var e=2===this.data.r?1:100/this.data.totalChars,i=this.o.v/e,r=this.s.v/e+i,s=this.e.v/e+i;if(r>s){var a=r;r=s,s=a}this.finalS=r,this.finalE=s}},extendPrototype([DynamicPropertyContainer],r),{getTextSelectorProp:function(t,e,i){return new r(t,e,i)}}}();function TextAnimatorDataProperty(t,e,i){var r={propType:!1},s=PropertyFactory.getProp,a=e.a;this.a={r:a.r?s(t,a.r,0,degToRads,i):r,rx:a.rx?s(t,a.rx,0,degToRads,i):r,ry:a.ry?s(t,a.ry,0,degToRads,i):r,sk:a.sk?s(t,a.sk,0,degToRads,i):r,sa:a.sa?s(t,a.sa,0,degToRads,i):r,s:a.s?s(t,a.s,1,.01,i):r,a:a.a?s(t,a.a,1,0,i):r,o:a.o?s(t,a.o,0,.01,i):r,p:a.p?s(t,a.p,1,0,i):r,sw:a.sw?s(t,a.sw,0,0,i):r,sc:a.sc?s(t,a.sc,1,0,i):r,fc:a.fc?s(t,a.fc,1,0,i):r,fh:a.fh?s(t,a.fh,0,0,i):r,fs:a.fs?s(t,a.fs,0,.01,i):r,fb:a.fb?s(t,a.fb,0,.01,i):r,t:a.t?s(t,a.t,0,0,i):r},this.s=TextSelectorProp.getTextSelectorProp(t,e.s,i),this.s.t=e.s.t}function TextAnimatorProperty(t,e,i){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=t,this._renderType=e,this._elem=i,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(i)}function ITextElement(){}TextAnimatorProperty.prototype.searchProperties=function(){var t,e,i=this._textData.a.length,r=PropertyFactory.getProp;for(t=0;t=o+ot||!d?(v=(o+ot-l)/h.partialLength,G=c.point[0]+(h.point[0]-c.point[0])*v,z=c.point[1]+(h.point[1]-c.point[1])*v,C.translate(-P[0]*T[s].an*.005,-P[1]*B*.01),p=!1):d&&(l+=h.partialLength,(f+=1)>=d.length&&(f=0,u[m+=1]?d=u[m].points:x.v.c?(f=0,d=u[m=0].points):(l-=h.partialLength,d=null)),d&&(c=h,y=(h=d[f]).partialLength));L=T[s].an/2-T[s].add,C.translate(-L,0,0)}else L=T[s].an/2-T[s].add,C.translate(-L,0,0),C.translate(-P[0]*T[s].an*.005,-P[1]*B*.01,0);for(F=0;Ft?this.textSpans[t].span:createNS(h?"g":"text"),y<=t){if(n.setAttribute("stroke-linecap","butt"),n.setAttribute("stroke-linejoin","round"),n.setAttribute("stroke-miterlimit","4"),this.textSpans[t].span=n,h){var g=createNS("g");n.appendChild(g),this.textSpans[t].childSpan=g}this.textSpans[t].span=n,this.layerElement.appendChild(n)}n.style.display="inherit"}if(l.reset(),p&&(o[t].n&&(f=-d,m+=i.yOffset,m+=c?1:0,c=!1),this.applyTextPropertiesToMatrix(i,l,o[t].line,f,m),f+=o[t].l||0,f+=d),h){var v;if(1===(u=this.globalData.fontManager.getCharData(i.finalText[t],r.fStyle,this.globalData.fontManager.getFontByName(i.f).fFamily)).t)v=new SVGCompElement(u.data,this.globalData,this);else{var b=emptyShapeData;u.data&&u.data.shapes&&(b=this.buildShapeData(u.data,i.finalSize)),v=new SVGShapeElement(b,this.globalData,this)}if(this.textSpans[t].glyph){var x=this.textSpans[t].glyph;this.textSpans[t].childSpan.removeChild(x.layerElement),x.destroy()}this.textSpans[t].glyph=v,v._debug=!0,v.prepareFrame(0),v.renderFrame(),this.textSpans[t].childSpan.appendChild(v.layerElement),1===u.t&&this.textSpans[t].childSpan.setAttribute("transform","scale("+i.finalSize/100+","+i.finalSize/100+")")}else p&&n.setAttribute("transform","translate("+l.props[12]+","+l.props[13]+")"),n.textContent=o[t].val,n.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve")}p&&n&&n.setAttribute("d","")}else{var P=this.textContainer,E="start";switch(i.j){case 1:E="end";break;case 2:E="middle";break;default:E="start"}P.setAttribute("text-anchor",E),P.setAttribute("letter-spacing",d);var S=this.buildTextContents(i.finalText);for(e=S.length,m=i.ps?i.ps[1]+i.ascent:0,t=0;t=0;e-=1)(this.completeLayers||this.elements[e])&&this.elements[e].prepareFrame(t-this.layers[e].st);if(this.globalData._mdf)for(e=0;e=0;i-=1)(this.completeLayers||this.elements[i])&&(this.elements[i].prepareFrame(this.renderedFrame-this.layers[i].st),this.elements[i]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var t,e=this.layers.length;for(t=0;t=0;i-=1)t.finalTransform.multiply(t.transforms[i].transform.mProps.v);t._mdf=s},processSequences:function(t){var e,i=this.sequenceList.length;for(e=0;e=1){this.buffers=[];var t=this.globalData.canvasContext,e=assetLoader.createCanvas(t.canvas.width,t.canvas.height);this.buffers.push(e);var i=assetLoader.createCanvas(t.canvas.width,t.canvas.height);this.buffers.push(i),this.data.tt>=3&&!document._isProxy&&assetLoader.loadLumaCanvas()}this.canvasContext=this.globalData.canvasContext,this.transformCanvas=this.globalData.transformCanvas,this.renderableEffectsManager=new CVEffects(this),this.searchEffectTransforms()},createContent:function(){},setBlendMode:function(){var t=this.globalData;if(t.blendMode!==this.data.bm){t.blendMode=this.data.bm;var e=getBlendMode(this.data.bm);t.canvasContext.globalCompositeOperation=e}},createRenderableComponents:function(){this.maskManager=new CVMaskElement(this.data,this),this.transformEffects=this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT)},hideElement:function(){this.hidden||this.isInRange&&!this.isTransparent||(this.hidden=!0)},showElement:function(){this.isInRange&&!this.isTransparent&&(this.hidden=!1,this._isFirstFrame=!0,this.maskManager._isFirstFrame=!0)},clearCanvas:function(t){t.clearRect(this.transformCanvas.tx,this.transformCanvas.ty,this.transformCanvas.w*this.transformCanvas.sx,this.transformCanvas.h*this.transformCanvas.sy)},prepareLayer:function(){if(this.data.tt>=1){var t=this.buffers[0].getContext("2d");this.clearCanvas(t),t.drawImage(this.canvasContext.canvas,0,0),this.currentTransform=this.canvasContext.getTransform(),this.canvasContext.setTransform(1,0,0,1,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.setTransform(this.currentTransform)}},exitLayer:function(){if(this.data.tt>=1){var t=this.buffers[1],e=t.getContext("2d");if(this.clearCanvas(e),e.drawImage(this.canvasContext.canvas,0,0),this.canvasContext.setTransform(1,0,0,1,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.setTransform(this.currentTransform),this.comp.getElementById("tp"in this.data?this.data.tp:this.data.ind-1).renderFrame(!0),this.canvasContext.setTransform(1,0,0,1,0,0),this.data.tt>=3&&!document._isProxy){var i=assetLoader.getLumaCanvas(this.canvasContext.canvas);i.getContext("2d").drawImage(this.canvasContext.canvas,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.drawImage(i,0,0)}this.canvasContext.globalCompositeOperation=operationsMap[this.data.tt],this.canvasContext.drawImage(t,0,0),this.canvasContext.globalCompositeOperation="destination-over",this.canvasContext.drawImage(this.buffers[0],0,0),this.canvasContext.setTransform(this.currentTransform),this.canvasContext.globalCompositeOperation="source-over"}},renderFrame:function(t){if(!this.hidden&&!this.data.hd&&(1!==this.data.td||t)){this.renderTransform(),this.renderRenderable(),this.renderLocalTransform(),this.setBlendMode();var e=0===this.data.ty;this.prepareLayer(),this.globalData.renderer.save(e),this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props),this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity),this.renderInnerContent(),this.globalData.renderer.restore(e),this.exitLayer(),this.maskManager.hasMasks&&this.globalData.renderer.restore(!0),this._isFirstFrame&&(this._isFirstFrame=!1)}},destroy:function(){this.canvasContext=null,this.data=null,this.globalData=null,this.maskManager.destroy()},mHelper:new Matrix},CVBaseElement.prototype.hide=CVBaseElement.prototype.hideElement,CVBaseElement.prototype.show=CVBaseElement.prototype.showElement,CVShapeData.prototype.setAsAnimated=SVGShapeData.prototype.setAsAnimated,extendPrototype([BaseElement,TransformElement,CVBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableElement],CVShapeElement),CVShapeElement.prototype.initElement=RenderableDOMElement.prototype.initElement,CVShapeElement.prototype.transformHelper={opacity:1,_opMdf:!1},CVShapeElement.prototype.dashResetter=[],CVShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,!0,[])},CVShapeElement.prototype.createStyleElement=function(t,e){var i={data:t,type:t.ty,preTransforms:this.transformsManager.addTransformSequence(e),transforms:[],elements:[],closed:!0===t.hd},r={};if("fl"===t.ty||"st"===t.ty?(r.c=PropertyFactory.getProp(this,t.c,1,255,this),r.c.k||(i.co="rgb("+bmFloor(r.c.v[0])+","+bmFloor(r.c.v[1])+","+bmFloor(r.c.v[2])+")")):"gf"!==t.ty&&"gs"!==t.ty||(r.s=PropertyFactory.getProp(this,t.s,1,null,this),r.e=PropertyFactory.getProp(this,t.e,1,null,this),r.h=PropertyFactory.getProp(this,t.h||{k:0},0,.01,this),r.a=PropertyFactory.getProp(this,t.a||{k:0},0,degToRads,this),r.g=new GradientProperty(this,t.g,this)),r.o=PropertyFactory.getProp(this,t.o,0,.01,this),"st"===t.ty||"gs"===t.ty){if(i.lc=lineCapEnum[t.lc||2],i.lj=lineJoinEnum[t.lj||2],1==t.lj&&(i.ml=t.ml),r.w=PropertyFactory.getProp(this,t.w,0,null,this),r.w.k||(i.wi=r.w.v),t.d){var s=new DashProperty(this,t.d,"canvas",this);r.d=s,r.d.k||(i.da=r.d.dashArray,i.do=r.d.dashoffset[0])}}else i.r=2===t.r?"evenodd":"nonzero";return this.stylesList.push(i),r.style=i,r},CVShapeElement.prototype.createGroupElement=function(){return{it:[],prevViewData:[]}},CVShapeElement.prototype.createTransformElement=function(t){return{transform:{opacity:1,_opMdf:!1,key:this.transformsManager.getNewKey(),op:PropertyFactory.getProp(this,t.o,0,.01,this),mProps:TransformPropertyFactory.getTransformProperty(this,t,this)}}},CVShapeElement.prototype.createShapeElement=function(t){var e=new CVShapeData(this,t,this.stylesList,this.transformsManager);return this.shapes.push(e),this.addShapeToModifiers(e),e},CVShapeElement.prototype.reloadShapes=function(){var t;this._isFirstFrame=!0;var e=this.itemsData.length;for(t=0;t=0;a-=1){if((h=this.searchProcessedElement(t[a]))?e[a]=i[h-1]:t[a]._shouldRender=r,"fl"===t[a].ty||"st"===t[a].ty||"gf"===t[a].ty||"gs"===t[a].ty)h?e[a].style.closed=!1:e[a]=this.createStyleElement(t[a],d),m.push(e[a].style);else if("gr"===t[a].ty){if(h)for(o=e[a].it.length,n=0;n=0;s-=1)"tr"===e[s].ty?(a=i[s].transform,this.renderShapeTransform(t,a)):"sh"===e[s].ty||"el"===e[s].ty||"rc"===e[s].ty||"sr"===e[s].ty?this.renderPath(e[s],i[s]):"fl"===e[s].ty?this.renderFill(e[s],i[s],a):"st"===e[s].ty?this.renderStroke(e[s],i[s],a):"gf"===e[s].ty||"gs"===e[s].ty?this.renderGradientFill(e[s],i[s],a):"gr"===e[s].ty?this.renderShape(a,e[s].it,i[s].it):e[s].ty;r&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(t,e){if(this._isFirstFrame||e._mdf||t.transforms._mdf){var i,r,s,a=t.trNodes,n=e.paths,o=n._length;a.length=0;var h=t.transforms.finalTransform;for(s=0;s=1?f=.99:f<=-1&&(f=-.99);var m=l*f,c=Math.cos(p+e.a.v)*m+o[0],d=Math.sin(p+e.a.v)*m+o[1];r=n.createRadialGradient(c,d,0,o[0],o[1],l)}var u=t.g.p,y=e.g.c,g=1;for(a=0;ao&&"xMidYMid slice"===h||ns&&"meet"===o||as&&"slice"===o)?(i-this.transformCanvas.w*(r/this.transformCanvas.h))/2*this.renderConfig.dpr:"xMax"===l&&(as&&"slice"===o)?(i-this.transformCanvas.w*(r/this.transformCanvas.h))*this.renderConfig.dpr:0,this.transformCanvas.ty="YMid"===p&&(a>s&&"meet"===o||as&&"meet"===o||a=0;t-=1)this.elements[t]&&this.elements[t].destroy&&this.elements[t].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRendererBase.prototype.renderFrame=function(t,e){if((this.renderedFrame!==t||!0!==this.renderConfig.clearCanvas||e)&&!this.destroyed&&-1!==t){var i;this.renderedFrame=t,this.globalData.frameNum=t-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||e,this.globalData.projectInterface.currentFrame=t;var r=this.layers.length;for(this.completeLayers||this.checkLayers(t),i=r-1;i>=0;i-=1)(this.completeLayers||this.elements[i])&&this.elements[i].prepareFrame(t-this.layers[i].st);if(this.globalData._mdf){for(!0===this.renderConfig.clearCanvas?this.canvasContext.clearRect(0,0,this.transformCanvas.w,this.transformCanvas.h):this.save(),i=r-1;i>=0;i-=1)(this.completeLayers||this.elements[i])&&this.elements[i].renderFrame();!0!==this.renderConfig.clearCanvas&&this.restore()}}},CanvasRendererBase.prototype.buildItem=function(t){var e=this.elements;if(!e[t]&&99!==this.layers[t].ty){var i=this.createItem(this.layers[t],this,this.globalData);e[t]=i,i.initExpressions()}},CanvasRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},CanvasRendererBase.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRendererBase.prototype.show=function(){this.animationItem.container.style.display="block"},CVContextData.prototype.duplicate=function(){var t=2*this._length,e=0;for(e=this._length;e=0;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame()},CVCompElement.prototype.destroy=function(){var t;for(t=this.layers.length-1;t>=0;t-=1)this.elements[t]&&this.elements[t].destroy();this.layers=null,this.elements=null},CVCompElement.prototype.createComp=function(t){return new CVCompElement(t,this.globalData,this)},extendPrototype([CanvasRendererBase],CanvasRenderer),CanvasRenderer.prototype.createComp=function(t){return new CVCompElement(t,this.globalData,this)},HBaseElement.prototype={checkBlendMode:function(){},initRendererElement:function(){this.baseElement=createTag(this.data.tg||"div"),this.data.hasMask?(this.svgElement=createNS("svg"),this.layerElement=createNS("g"),this.maskedElement=this.layerElement,this.svgElement.appendChild(this.layerElement),this.baseElement.appendChild(this.svgElement)):this.layerElement=this.baseElement,styleDiv(this.baseElement)},createContainerElements:function(){this.renderableEffectsManager=new CVEffects(this),this.transformedElement=this.baseElement,this.maskedElement=this.layerElement,this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),0!==this.data.bm&&this.setBlendMode()},renderElement:function(){var t=this.transformedElement?this.transformedElement.style:{};if(this.finalTransform._matMdf){var e=this.finalTransform.mat.toCSS();t.transform=e,t.webkitTransform=e}this.finalTransform._opMdf&&(t.opacity=this.finalTransform.mProp.o.v)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.layerElement=null,this.transformedElement=null,this.matteElement&&(this.matteElement=null),this.maskManager&&(this.maskManager.destroy(),this.maskManager=null)},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData)},addEffects:function(){},setMatte:function(){}},HBaseElement.prototype.getBaseElement=SVGBaseElement.prototype.getBaseElement,HBaseElement.prototype.destroyBaseElement=HBaseElement.prototype.destroy,HBaseElement.prototype.buildElementParenting=BaseRenderer.prototype.buildElementParenting,extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],HSolidElement),HSolidElement.prototype.createContent=function(){var t;this.data.hasMask?((t=createNS("rect")).setAttribute("width",this.data.sw),t.setAttribute("height",this.data.sh),t.setAttribute("fill",this.data.sc),this.svgElement.setAttribute("width",this.data.sw),this.svgElement.setAttribute("height",this.data.sh)):((t=createTag("div")).style.width=this.data.sw+"px",t.style.height=this.data.sh+"px",t.style.backgroundColor=this.data.sc),this.layerElement.appendChild(t)},extendPrototype([BaseElement,TransformElement,HSolidElement,SVGShapeElement,HBaseElement,HierarchyElement,FrameElement,RenderableElement],HShapeElement),HShapeElement.prototype._renderShapeFrame=HShapeElement.prototype.renderInnerContent,HShapeElement.prototype.createContent=function(){var t;if(this.baseElement.style.fontSize=0,this.data.hasMask)this.layerElement.appendChild(this.shapesContainer),t=this.svgElement;else{t=createNS("svg");var e=this.comp.data?this.comp.data:this.globalData.compSize;t.setAttribute("width",e.w),t.setAttribute("height",e.h),t.appendChild(this.shapesContainer),this.layerElement.appendChild(t)}this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.shapesContainer,0,[],!0),this.filterUniqueShapes(),this.shapeCont=t},HShapeElement.prototype.getTransformedPoint=function(t,e){var i,r=t.length;for(i=0;i0&&o<1&&f[m].push(this.calculateF(o,t,e,i,r,m)):(h=a*a-4*n*s)>=0&&((l=(-a+bmSqrt(h))/(2*s))>0&&l<1&&f[m].push(this.calculateF(l,t,e,i,r,m)),(p=(-a-bmSqrt(h))/(2*s))>0&&p<1&&f[m].push(this.calculateF(p,t,e,i,r,m))));this.shapeBoundingBox.left=bmMin.apply(null,f[0]),this.shapeBoundingBox.top=bmMin.apply(null,f[1]),this.shapeBoundingBox.right=bmMax.apply(null,f[0]),this.shapeBoundingBox.bottom=bmMax.apply(null,f[1])},HShapeElement.prototype.calculateF=function(t,e,i,r,s,a){return bmPow(1-t,3)*e[a]+3*bmPow(1-t,2)*t*i[a]+3*(1-t)*bmPow(t,2)*r[a]+bmPow(t,3)*s[a]},HShapeElement.prototype.calculateBoundingBox=function(t,e){var i,r=t.length;for(i=0;ii&&(i=s)}i*=t.mult}else i=t.v*t.mult;e.x-=i,e.xMax+=i,e.y-=i,e.yMax+=i},HShapeElement.prototype.currentBoxContains=function(t){return this.currentBBox.x<=t.x&&this.currentBBox.y<=t.y&&this.currentBBox.width+this.currentBBox.x>=t.x+t.width&&this.currentBBox.height+this.currentBBox.y>=t.y+t.height},HShapeElement.prototype.renderInnerContent=function(){if(this._renderShapeFrame(),!this.hidden&&(this._isFirstFrame||this._mdf)){var t=this.tempBoundingBox,e=999999;if(t.x=e,t.xMax=-e,t.y=e,t.yMax=-e,this.calculateBoundingBox(this.itemsData,t),t.width=t.xMax=0;t-=1){var r=this.hierarchy[t].finalTransform.mProp;this.mat.translate(-r.p.v[0],-r.p.v[1],r.p.v[2]),this.mat.rotateX(-r.or.v[0]).rotateY(-r.or.v[1]).rotateZ(r.or.v[2]),this.mat.rotateX(-r.rx.v).rotateY(-r.ry.v).rotateZ(r.rz.v),this.mat.scale(1/r.s.v[0],1/r.s.v[1],1/r.s.v[2]),this.mat.translate(r.a.v[0],r.a.v[1],r.a.v[2])}if(this.p?this.mat.translate(-this.p.v[0],-this.p.v[1],this.p.v[2]):this.mat.translate(-this.px.v,-this.py.v,this.pz.v),this.a){var s;s=this.p?[this.p.v[0]-this.a.v[0],this.p.v[1]-this.a.v[1],this.p.v[2]-this.a.v[2]]:[this.px.v-this.a.v[0],this.py.v-this.a.v[1],this.pz.v-this.a.v[2]];var a=Math.sqrt(Math.pow(s[0],2)+Math.pow(s[1],2)+Math.pow(s[2],2)),n=[s[0]/a,s[1]/a,s[2]/a],o=Math.sqrt(n[2]*n[2]+n[0]*n[0]),h=Math.atan2(n[1],o),l=Math.atan2(n[0],-n[2]);this.mat.rotateY(l).rotateX(-h)}this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v),this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]),this.mat.translate(this.globalData.compSize.w/2,this.globalData.compSize.h/2,0),this.mat.translate(0,0,this.pe.v);var p=!this._prevMat.equals(this.mat);if((p||this.pe._mdf)&&this.comp.threeDElements){var f,m,c;for(e=this.comp.threeDElements.length,t=0;t=t)return this.threeDElements[e].perspectiveElem;e+=1}return null},HybridRendererBase.prototype.createThreeDContainer=function(t,e){var i,r,s=createTag("div");styleDiv(s);var a=createTag("div");if(styleDiv(a),"3d"===e){(i=s.style).width=this.globalData.compSize.w+"px",i.height=this.globalData.compSize.h+"px";var n="50% 50%";i.webkitTransformOrigin=n,i.mozTransformOrigin=n,i.transformOrigin=n;var o="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)";(r=a.style).transform=o,r.webkitTransform=o}s.appendChild(a);var h={container:a,perspectiveElem:s,startPos:t,endPos:t,type:e};return this.threeDElements.push(h),h},HybridRendererBase.prototype.build3dContainers=function(){var t,e,i=this.layers.length,r="";for(t=0;t=0;t-=1)this.resizerElem.appendChild(this.threeDElements[t].perspectiveElem)},HybridRendererBase.prototype.addTo3dContainer=function(t,e){for(var i=0,r=this.threeDElements.length;in?(t=s/this.globalData.compSize.w,e=s/this.globalData.compSize.w,i=0,r=(a-this.globalData.compSize.h*(s/this.globalData.compSize.w))/2):(t=a/this.globalData.compSize.h,e=a/this.globalData.compSize.h,i=(s-this.globalData.compSize.w*(a/this.globalData.compSize.h))/2,r=0);var o=this.resizerElem.style;o.webkitTransform="matrix3d("+t+",0,0,0,0,"+e+",0,0,0,0,1,0,"+i+","+r+",0,1)",o.transform=o.webkitTransform},HybridRendererBase.prototype.renderFrame=SVGRenderer.prototype.renderFrame,HybridRendererBase.prototype.hide=function(){this.resizerElem.style.display="none"},HybridRendererBase.prototype.show=function(){this.resizerElem.style.display="block"},HybridRendererBase.prototype.initItems=function(){if(this.buildAllItems(),this.camera)this.camera.setup();else{var t,e=this.globalData.compSize.w,i=this.globalData.compSize.h,r=this.threeDElements.length;for(t=0;t=o;)t/=2,e/=2,i>>>=1;return(t+i)/e};return b.int32=function(){return 0|v.g(4)},b.quick=function(){return v.g(4)/4294967296},b.double=b,m(c(v.S),t),(d.pass||u||function(t,i,r,s){return s&&(s.S&&p(s,v),t.state=function(){return p(v,{})}),r?(e.random=t,i):t})(b,g,"global"in d?d.global:this==e,d.state)},m(e.random(),t)}function initialize$2(t){seedRandom([],t)}var propTypes={SHAPE:"shape"};function _typeof$1(t){return _typeof$1="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof$1(t)}var ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null,XMLHttpRequest=null,fetch=null,frames=null,_lottieGlobal={};function resetFrame(){_lottieGlobal={}}function $bm_isInstanceOfArray(t){return t.constructor===Array||t.constructor===Float32Array}function isNumerable(t,e){return"number"===t||e instanceof Number||"boolean"===t||"string"===t}function $bm_neg(t){var e=_typeof$1(t);if("number"===e||t instanceof Number||"boolean"===e)return-t;if($bm_isInstanceOfArray(t)){var i,r=t.length,s=[];for(i=0;ii){var r=i;i=e,e=r}return Math.min(Math.max(t,e),i)}function radiansToDegrees(t){return t/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(t){return t*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(t,e){if("number"==typeof t||t instanceof Number)return e=e||0,Math.abs(t-e);var i;e||(e=helperLengthArray);var r=Math.min(t.length,e.length),s=0;for(i=0;i.5?l/(2-n-o):l/(n+o),n){case r:e=(s-a)/l+(s1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function hslToRgb(t){var e,i,r,s=t[0],a=t[1],n=t[2];if(0===a)e=n,r=n,i=n;else{var o=n<.5?n*(1+a):n+a-n*a,h=2*n-o;e=hue2rgb(h,o,s+1/3),i=hue2rgb(h,o,s),r=hue2rgb(h,o,s-1/3)}return[e,i,r,t[3]]}function linear(t,e,i,r,s){if(void 0!==r&&void 0!==s||(r=e,s=i,e=0,i=1),i=i)return s;var n,o=i===e?0:(t-e)/(i-e);if(!r.length)return r+(s-r)*o;var h=r.length,l=createTypedArray("float32",h);for(n=0;n1){for(r=0;r1?e=1:e<0&&(e=0);var n=t(e);if($bm_isInstanceOfArray(s)){var o,h=s.length,l=createTypedArray("float32",h);for(o=0;odata.k[e].t&&tdata.k[e+1].t-t?(i=e+2,r=data.k[e+1].t):(i=e+1,r=data.k[e].t);break}}-1===i&&(i=e+1,r=data.k[e].t)}else i=0,r=0;var a={};return a.index=i,a.time=r/elem.comp.globalData.frameRate,a}function key(t){var e,i,r;if(!data.k.length||"number"==typeof data.k[0])throw new Error("The property has no keyframe at index "+t);t-=1,e={time:data.k[t].t/elem.comp.globalData.frameRate,value:[]};var s=Object.prototype.hasOwnProperty.call(data.k[t],"s")?data.k[t].s:data.k[t-1].e;for(r=s.length,i=0;il.length-1)&&(e=l.length-1),r=p-(s=l[l.length-1-e].t)),"pingpong"===t){if(Math.floor((h-s)/r)%2!=0)return this.getValueAtTime((r-(h-s)%r+s)/this.comp.globalData.frameRate,0)}else{if("offset"===t){var f=this.getValueAtTime(s/this.comp.globalData.frameRate,0),m=this.getValueAtTime(p/this.comp.globalData.frameRate,0),c=this.getValueAtTime(((h-s)%r+s)/this.comp.globalData.frameRate,0),d=Math.floor((h-s)/r);if(this.pv.length){for(n=(o=new Array(f.length)).length,a=0;a=p)return this.pv;if(i?s=p+(r=e?Math.abs(this.elem.comp.globalData.frameRate*e):Math.max(0,this.elem.data.op-p)):((!e||e>l.length-1)&&(e=l.length-1),r=(s=l[e].t)-p),"pingpong"===t){if(Math.floor((p-h)/r)%2==0)return this.getValueAtTime(((p-h)%r+p)/this.comp.globalData.frameRate,0)}else{if("offset"===t){var f=this.getValueAtTime(p/this.comp.globalData.frameRate,0),m=this.getValueAtTime(s/this.comp.globalData.frameRate,0),c=this.getValueAtTime((r-(p-h)%r+p)/this.comp.globalData.frameRate,0),d=Math.floor((p-h)/r)+1;if(this.pv.length){for(n=(o=new Array(f.length)).length,a=0;a1?(s+t-a)/(e-1):1,o=0,h=0;for(i=this.pv.length?createTypedArray("float32",this.pv.length):0;on){var p=o,f=i.c&&o===h-1?0:o+1,m=(n-l)/a[o].addedLength;r=bez.getPointInSegment(i.v[p],i.v[f],i.o[p],i.i[f],m,a[o]);break}l+=a[o].addedLength,o+=1}return r||(r=i.c?[i.v[0][0],i.v[0][1]]:[i.v[i._length-1][0],i.v[i._length-1][1]]),r},vectorOnPath:function(t,e,i){1==t?t=this.v.c:0==t&&(t=.999);var r=this.pointOnPath(t,e),s=this.pointOnPath(t+.001,e),a=s[0]-r[0],n=s[1]-r[1],o=Math.sqrt(Math.pow(a,2)+Math.pow(n,2));return 0===o?[0,0]:"tangent"===i?[a/o,n/o]:[-n/o,a/o]},tangentOnPath:function(t,e){return this.vectorOnPath(t,e,"tangent")},normalOnPath:function(t,e){return this.vectorOnPath(t,e,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([l],o),extendPrototype([l],h),h.prototype.getValueAtTime=function(t){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shapePool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),t*=this.elem.globalData.frameRate,(t-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime=l?c<0?r:s:r+m*Math.pow((a-t)/c,1/i),p[f]=n,f+=1,o+=256/255;return p.join(" ")},SVGProLevelsFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e,i=this.filterManager.effectElements;this.feFuncRComposed&&(t||i[3].p._mdf||i[4].p._mdf||i[5].p._mdf||i[6].p._mdf||i[7].p._mdf)&&(e=this.getTableValue(i[3].p.v,i[4].p.v,i[5].p.v,i[6].p.v,i[7].p.v),this.feFuncRComposed.setAttribute("tableValues",e),this.feFuncGComposed.setAttribute("tableValues",e),this.feFuncBComposed.setAttribute("tableValues",e)),this.feFuncR&&(t||i[10].p._mdf||i[11].p._mdf||i[12].p._mdf||i[13].p._mdf||i[14].p._mdf)&&(e=this.getTableValue(i[10].p.v,i[11].p.v,i[12].p.v,i[13].p.v,i[14].p.v),this.feFuncR.setAttribute("tableValues",e)),this.feFuncG&&(t||i[17].p._mdf||i[18].p._mdf||i[19].p._mdf||i[20].p._mdf||i[21].p._mdf)&&(e=this.getTableValue(i[17].p.v,i[18].p.v,i[19].p.v,i[20].p.v,i[21].p.v),this.feFuncG.setAttribute("tableValues",e)),this.feFuncB&&(t||i[24].p._mdf||i[25].p._mdf||i[26].p._mdf||i[27].p._mdf||i[28].p._mdf)&&(e=this.getTableValue(i[24].p.v,i[25].p.v,i[26].p.v,i[27].p.v,i[28].p.v),this.feFuncB.setAttribute("tableValues",e)),this.feFuncA&&(t||i[31].p._mdf||i[32].p._mdf||i[33].p._mdf||i[34].p._mdf||i[35].p._mdf)&&(e=this.getTableValue(i[31].p.v,i[32].p.v,i[33].p.v,i[34].p.v,i[35].p.v),this.feFuncA.setAttribute("tableValues",e))}},extendPrototype([SVGComposableEffect],SVGDropShadowEffect),SVGDropShadowEffect.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){if((t||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute("stdDeviation",this.filterManager.effectElements[4].p.v/4),t||this.filterManager.effectElements[0].p._mdf){var e=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute("flood-color",rgbToHex(Math.round(255*e[0]),Math.round(255*e[1]),Math.round(255*e[2])))}if((t||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute("flood-opacity",this.filterManager.effectElements[1].p.v/255),t||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var i=this.filterManager.effectElements[3].p.v,r=(this.filterManager.effectElements[2].p.v-90)*degToRads,s=i*Math.cos(r),a=i*Math.sin(r);this.feOffset.setAttribute("dx",s),this.feOffset.setAttribute("dy",a)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(t,e,i){this.initialized=!1,this.filterManager=e,this.filterElem=t,this.elem=i,i.matteElement=createNS("g"),i.matteElement.appendChild(i.layerElement),i.matteElement.appendChild(i.transformedElement),i.baseElement=i.matteElement}function SVGGaussianBlurEffect(t,e,i,r){t.setAttribute("x","-100%"),t.setAttribute("y","-100%"),t.setAttribute("width","300%"),t.setAttribute("height","300%"),this.filterManager=e;var s=createNS("feGaussianBlur");s.setAttribute("result",r),t.appendChild(s),this.feGaussianBlur=s}function TransformEffect(){}function SVGTransformEffect(t,e){this.init(e)}function CVTransformEffect(t){this.init(t)}return SVGMatte3Effect.prototype.findSymbol=function(t){for(var e=0,i=_svgMatteSymbols.length;ed;d++){var f=this.data.charCodeAt(d);f>65536?(b[0]=240|(1835008&f)>>>18,b[1]=128|(258048&f)>>>12,b[2]=128|(4032&f)>>>6,b[3]=128|63&f):f>2048?(b[0]=224|(61440&f)>>>12,b[1]=128|(4032&f)>>>6,b[2]=128|63&f):f>128?(b[0]=192|(1984&f)>>>6,b[1]=128|63&f):b[0]=f,this.parsedData=this.parsedData.concat(b)}this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function b(a,b){this.typeNumber=a,this.errorCorrectLevel=b,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function i(a,b){if(void 0==a.length)throw new Error(a.length+"/"+b);for(var c=0;c=f;f++){var h=0;switch(b){case d.L:h=l[f][0];break;case d.M:h=l[f][1];break;case d.Q:h=l[f][2];break;case d.H:h=l[f][3]}if(h>=e)break;c++}if(c>l.length)throw new Error("Too long data");return c}function s(a){var b=encodeURI(a).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return b.length+(b.length!=a?3:0)}a.prototype={getLength:function(){return this.parsedData.length},write:function(a){for(var b=0,c=this.parsedData.length;c>b;b++)a.put(this.parsedData[b],8)}},b.prototype={addData:function(b){var c=new a(b);this.dataList.push(c),this.dataCache=null},isDark:function(a,b){if(0>a||this.moduleCount<=a||0>b||this.moduleCount<=b)throw new Error(a+","+b);return this.modules[a][b]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var d=0;d=7&&this.setupTypeNumber(a),null==this.dataCache&&(this.dataCache=b.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,b){for(var c=-1;7>=c;c++)if(!(-1>=a+c||this.moduleCount<=a+c))for(var d=-1;7>=d;d++)-1>=b+d||this.moduleCount<=b+d||(this.modules[a+c][b+d]=c>=0&&6>=c&&(0==d||6==d)||d>=0&&6>=d&&(0==c||6==c)||c>=2&&4>=c&&d>=2&&4>=d?!0:!1)},getBestMaskPattern:function(){for(var a=0,b=0,c=0;8>c;c++){this.makeImpl(!0,c);var d=f.getLostPoint(this);(0==c||a>d)&&(a=d,b=c)}return b},createMovieClip:function(a,b,c){var d=a.createEmptyMovieClip(b,c),e=1;this.make();for(var f=0;f=g;g++)for(var h=-2;2>=h;h++)this.modules[d+g][e+h]=-2==g||2==g||-2==h||2==h||0==g&&0==h?!0:!1}},setupTypeNumber:function(a){for(var b=f.getBCHTypeNumber(this.typeNumber),c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[Math.floor(c/3)][c%3+this.moduleCount-8-3]=d}for(var c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[c%3+this.moduleCount-8-3][Math.floor(c/3)]=d}},setupTypeInfo:function(a,b){for(var c=this.errorCorrectLevel<<3|b,d=f.getBCHTypeInfo(c),e=0;15>e;e++){var g=!a&&1==(1&d>>e);6>e?this.modules[e][8]=g:8>e?this.modules[e+1][8]=g:this.modules[this.moduleCount-15+e][8]=g}for(var e=0;15>e;e++){var g=!a&&1==(1&d>>e);8>e?this.modules[8][this.moduleCount-e-1]=g:9>e?this.modules[8][15-e-1+1]=g:this.modules[8][15-e-1]=g}this.modules[this.moduleCount-8][8]=!a},mapData:function(a,b){for(var c=-1,d=this.moduleCount-1,e=7,g=0,h=this.moduleCount-1;h>0;h-=2)for(6==h&&h--;;){for(var i=0;2>i;i++)if(null==this.modules[d][h-i]){var j=!1;g>>e));var k=f.getMask(b,d,h-i);k&&(j=!j),this.modules[d][h-i]=j,e--,-1==e&&(g++,e=7)}if(d+=c,0>d||this.moduleCount<=d){d-=c,c=-c;break}}}},b.PAD0=236,b.PAD1=17,b.createData=function(a,c,d){for(var e=j.getRSBlocks(a,c),g=new k,h=0;h8*l)throw new Error("code length overflow. ("+g.getLengthInBits()+">"+8*l+")");for(g.getLengthInBits()+4<=8*l&&g.put(0,4);0!=g.getLengthInBits()%8;)g.putBit(!1);for(;;){if(g.getLengthInBits()>=8*l)break;if(g.put(b.PAD0,8),g.getLengthInBits()>=8*l)break;g.put(b.PAD1,8)}return b.createBytes(g,e)},b.createBytes=function(a,b){for(var c=0,d=0,e=0,g=new Array(b.length),h=new Array(b.length),j=0;j=0?p.get(q):0}}for(var r=0,m=0;mm;m++)for(var j=0;jm;m++)for(var j=0;j=0;)b^=f.G15<=0;)b^=f.G18<>>=1;return b},getPatternPosition:function(a){return f.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,b,c){switch(a){case e.PATTERN000:return 0==(b+c)%2;case e.PATTERN001:return 0==b%2;case e.PATTERN010:return 0==c%3;case e.PATTERN011:return 0==(b+c)%3;case e.PATTERN100:return 0==(Math.floor(b/2)+Math.floor(c/3))%2;case e.PATTERN101:return 0==b*c%2+b*c%3;case e.PATTERN110:return 0==(b*c%2+b*c%3)%2;case e.PATTERN111:return 0==(b*c%3+(b+c)%2)%2;default:throw new Error("bad maskPattern:"+a)}},getErrorCorrectPolynomial:function(a){for(var b=new i([1],0),c=0;a>c;c++)b=b.multiply(new i([1,g.gexp(c)],0));return b},getLengthInBits:function(a,b){if(b>=1&&10>b)switch(a){case c.MODE_NUMBER:return 10;case c.MODE_ALPHA_NUM:return 9;case c.MODE_8BIT_BYTE:return 8;case c.MODE_KANJI:return 8;default:throw new Error("mode:"+a)}else if(27>b)switch(a){case c.MODE_NUMBER:return 12;case c.MODE_ALPHA_NUM:return 11;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 10;default:throw new Error("mode:"+a)}else{if(!(41>b))throw new Error("type:"+b);switch(a){case c.MODE_NUMBER:return 14;case c.MODE_ALPHA_NUM:return 13;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 12;default:throw new Error("mode:"+a)}}},getLostPoint:function(a){for(var b=a.getModuleCount(),c=0,d=0;b>d;d++)for(var e=0;b>e;e++){for(var f=0,g=a.isDark(d,e),h=-1;1>=h;h++)if(!(0>d+h||d+h>=b))for(var i=-1;1>=i;i++)0>e+i||e+i>=b||(0!=h||0!=i)&&g==a.isDark(d+h,e+i)&&f++;f>5&&(c+=3+f-5)}for(var d=0;b-1>d;d++)for(var e=0;b-1>e;e++){var j=0;a.isDark(d,e)&&j++,a.isDark(d+1,e)&&j++,a.isDark(d,e+1)&&j++,a.isDark(d+1,e+1)&&j++,(0==j||4==j)&&(c+=3)}for(var d=0;b>d;d++)for(var e=0;b-6>e;e++)a.isDark(d,e)&&!a.isDark(d,e+1)&&a.isDark(d,e+2)&&a.isDark(d,e+3)&&a.isDark(d,e+4)&&!a.isDark(d,e+5)&&a.isDark(d,e+6)&&(c+=40);for(var e=0;b>e;e++)for(var d=0;b-6>d;d++)a.isDark(d,e)&&!a.isDark(d+1,e)&&a.isDark(d+2,e)&&a.isDark(d+3,e)&&a.isDark(d+4,e)&&!a.isDark(d+5,e)&&a.isDark(d+6,e)&&(c+=40);for(var k=0,e=0;b>e;e++)for(var d=0;b>d;d++)a.isDark(d,e)&&k++;var l=Math.abs(100*k/b/b-50)/5;return c+=10*l}},g={glog:function(a){if(1>a)throw new Error("glog("+a+")");return g.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;a>=256;)a-=255;return g.EXP_TABLE[a]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},h=0;8>h;h++)g.EXP_TABLE[h]=1<h;h++)g.EXP_TABLE[h]=g.EXP_TABLE[h-4]^g.EXP_TABLE[h-5]^g.EXP_TABLE[h-6]^g.EXP_TABLE[h-8];for(var h=0;255>h;h++)g.LOG_TABLE[g.EXP_TABLE[h]]=h;i.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var b=new Array(this.getLength()+a.getLength()-1),c=0;cf;f++)for(var g=c[3*f+0],h=c[3*f+1],i=c[3*f+2],k=0;g>k;k++)e.push(new j(h,i));return e},j.getRsBlockTable=function(a,b){switch(b){case d.L:return j.RS_BLOCK_TABLE[4*(a-1)+0];case d.M:return j.RS_BLOCK_TABLE[4*(a-1)+1];case d.Q:return j.RS_BLOCK_TABLE[4*(a-1)+2];case d.H:return j.RS_BLOCK_TABLE[4*(a-1)+3];default:return void 0}},k.prototype={get:function(a){var b=Math.floor(a/8);return 1==(1&this.buffer[b]>>>7-a%8)},put:function(a,b){for(var c=0;b>c;c++)this.putBit(1==(1&a>>>b-c-1))},getLengthInBits:function(){return this.length},putBit:function(a){var b=Math.floor(this.length/8);this.buffer.length<=b&&this.buffer.push(0),a&&(this.buffer[b]|=128>>>this.length%8),this.length++}};var l=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],o=function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){function g(a,b){var c=document.createElementNS("http://www.w3.org/2000/svg",a);for(var d in b)b.hasOwnProperty(d)&&c.setAttribute(d,b[d]);return c}var b=this._htOption,c=this._el,d=a.getModuleCount();Math.floor(b.width/d),Math.floor(b.height/d),this.clear();var h=g("svg",{viewBox:"0 0 "+String(d)+" "+String(d),width:"100%",height:"100%",fill:b.colorLight});h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),c.appendChild(h),h.appendChild(g("rect",{fill:b.colorDark,width:"1",height:"1",id:"template"}));for(var i=0;d>i;i++)for(var j=0;d>j;j++)if(a.isDark(i,j)){var k=g("use",{x:String(i),y:String(j)});k.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),h.appendChild(k)}},a.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},a}(),p="svg"===document.documentElement.tagName.toLowerCase(),q=p?o:m()?function(){function a(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}function d(a,b){var c=this;if(c._fFail=b,c._fSuccess=a,null===c._bSupportDataURI){var d=document.createElement("img"),e=function(){c._bSupportDataURI=!1,c._fFail&&_fFail.call(c)},f=function(){c._bSupportDataURI=!0,c._fSuccess&&c._fSuccess.call(c)};return d.onabort=e,d.onerror=e,d.onload=f,d.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",void 0}c._bSupportDataURI===!0&&c._fSuccess?c._fSuccess.call(c):c._bSupportDataURI===!1&&c._fFail&&c._fFail.call(c)}if(this._android&&this._android<=2.1){var b=1/window.devicePixelRatio,c=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(a,d,e,f,g,h,i,j){if("nodeName"in a&&/img/i.test(a.nodeName))for(var l=arguments.length-1;l>=1;l--)arguments[l]=arguments[l]*b;else"undefined"==typeof j&&(arguments[1]*=b,arguments[2]*=b,arguments[3]*=b,arguments[4]*=b);c.apply(this,arguments)}}var e=function(a,b){this._bIsPainted=!1,this._android=n(),this._htOption=b,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=b.width,this._elCanvas.height=b.height,a.appendChild(this._elCanvas),this._el=a,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return e.prototype.draw=function(a){var b=this._elImage,c=this._oContext,d=this._htOption,e=a.getModuleCount(),f=d.width/e,g=d.height/e,h=Math.round(f),i=Math.round(g);b.style.display="none",this.clear();for(var j=0;e>j;j++)for(var k=0;e>k;k++){var l=a.isDark(j,k),m=k*f,n=j*g;c.strokeStyle=l?d.colorDark:d.colorLight,c.lineWidth=1,c.fillStyle=l?d.colorDark:d.colorLight,c.fillRect(m,n,f,g),c.strokeRect(Math.floor(m)+.5,Math.floor(n)+.5,h,i),c.strokeRect(Math.ceil(m)-.5,Math.ceil(n)-.5,h,i)}this._bIsPainted=!0},e.prototype.makeImage=function(){this._bIsPainted&&d.call(this,a)},e.prototype.isPainted=function(){return this._bIsPainted},e.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},e.prototype.round=function(a){return a?Math.floor(1e3*a)/1e3:a},e}():function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){for(var b=this._htOption,c=this._el,d=a.getModuleCount(),e=Math.floor(b.width/d),f=Math.floor(b.height/d),g=[''],h=0;d>h;h++){g.push("");for(var i=0;d>i;i++)g.push('');g.push("")}g.push("
    "),c.innerHTML=g.join("");var j=c.childNodes[0],k=(b.width-j.offsetWidth)/2,l=(b.height-j.offsetHeight)/2;k>0&&l>0&&(j.style.margin=l+"px "+k+"px")},a.prototype.clear=function(){this._el.innerHTML=""},a}();QRCode=function(a,b){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:d.H},"string"==typeof b&&(b={text:b}),b)for(var c in b)this._htOption[c]=b[c];"string"==typeof a&&(a=document.getElementById(a)),this._android=n(),this._el=a,this._oQRCode=null,this._oDrawing=new q(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)},QRCode.prototype.makeCode=function(a){this._oQRCode=new b(r(a,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(a),this._oQRCode.make(),this._el.title=a,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=d}(); \ No newline at end of file diff --git a/lib/webtorrent/webtorrent_1_8_0.min.js b/lib/webtorrent/webtorrent_1_8_0.min.js new file mode 100644 index 0000000..a7de667 --- /dev/null +++ b/lib/webtorrent/webtorrent_1_8_0.min.js @@ -0,0 +1,16 @@ +(function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{var g;g="undefined"==typeof window?"undefined"==typeof global?"undefined"==typeof self?this:self:global:window,g.WebTorrent=f()}})(function(){var _MathLN=Math.LN2,_Mathlog2=Math.log,_Mathpow=Math.pow,_Mathabs=Math.abs,_Mathfloor=Math.floor,_Mathround=Math.round,_Mathsin=Math.sin,_Mathcos=Math.cos,_MathPI=Math.PI,_Mathimul=Math.imul,_Mathclz=Math.clz32,_StringfromCharCode=String.fromCharCode,_Mathmax=Math.max,_Mathceil=Math.ceil,_Mathmin=Math.min,define;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i{this._notify()}),eos(this,err=>{this.destroy(err)})}_read(){this._reading||(this._reading=!0,this._notify())}_notify(){if(!this._reading||0===this._missing)return;if(!this._torrent.bitfield.get(this._piece))return this._torrent.critical(this._piece,this._piece+this._criticalLength);if(this._notifying)return;if(this._notifying=!0,this._torrent.destroyed)return this.destroy(new Error("Torrent removed"));const p=this._piece,getOpts={};p===this._torrent.pieces.length-1&&(getOpts.length=this._torrent.lastPieceLength),this._torrent.store.get(p,getOpts,(err,buffer)=>{if(this._notifying=!1,!this.destroyed)return debug("read %s (length %s) (err %s)",p,buffer&&buffer.length,err&&err.message),err?this.destroy(err):void(this._offset&&(buffer=buffer.slice(this._offset),this._offset=0),this._missingpieceIndex===pieces.length-1?lastPieceLength:pieceLength,getPieceDownloaded=pieceIndex=>{const len=pieceIndex===pieces.length-1?lastPieceLength:pieceLength;return bitfield.get(pieceIndex)?len:len-pieces[pieceIndex].missing};let downloaded=0;for(let index=start;index<=end;index+=1){const pieceDownloaded=getPieceDownloaded(index);if(downloaded+=pieceDownloaded,index===start){const irrelevantFirstPieceBytes=this.offset%pieceLength;downloaded-=_Mathmin(irrelevantFirstPieceBytes,pieceDownloaded)}if(index===end){const irrelevantLastPieceBytes=getPieceLength(end)-(this.offset+this.length)%pieceLength;downloaded-=_Mathmin(irrelevantLastPieceBytes,pieceDownloaded)}}return downloaded}get progress(){return this.length?this.downloaded/this.length:0}select(priority){0===this.length||this._torrent.select(this._startPiece,this._endPiece,priority)}deselect(){0===this.length||this._torrent.deselect(this._startPiece,this._endPiece,!1)}createReadStream(opts){if(0===this.length){const empty=new PassThrough;return queueMicrotask(()=>{empty.end()}),empty}const fileStream=new FileStream(this,opts);return this._fileStreams.add(fileStream),fileStream.once("close",()=>{this._fileStreams.delete(fileStream)}),fileStream}getBuffer(cb){streamToBuffer(this.createReadStream(),this.length,cb)}getBlob(cb){if("undefined"==typeof window)throw new Error("browser-only method");streamToBlob(this.createReadStream(),this._getMimeType()).then(blob=>cb(null,blob),err=>cb(err))}getBlobURL(cb){if("undefined"==typeof window)throw new Error("browser-only method");streamToBlobURL(this.createReadStream(),this._getMimeType()).then(blobUrl=>cb(null,blobUrl),err=>cb(err))}appendTo(elem,opts,cb){if("undefined"==typeof window)throw new Error("browser-only method");render.append(this,elem,opts,cb)}renderTo(elem,opts,cb){if("undefined"==typeof window)throw new Error("browser-only method");render.render(this,elem,opts,cb)}_serve(req){const res={status:200,headers:{"Accept-Ranges":"bytes","Content-Type":mime.getType(this.name),"Cache-Control":"no-cache, no-store, must-revalidate, max-age=0",Expires:"0"},body:"HEAD"===req.method?"":"STREAM"};"document"===req.destination&&(res.headers["Content-Type"]="application/octet-stream",res.headers["Content-Disposition"]="attachment",res.body="DOWNLOAD");let range=rangeParser(this.length,req.headers.range||"");range.constructor===Array?(res.status=206,range=range[0],res.headers["Content-Range"]=`bytes ${range.start}-${range.end}/${this.length}`,res.headers["Content-Length"]=`${range.end-range.start+1}`):res.headers["Content-Length"]=this.length;const stream="GET"===req.method&&this.createReadStream(range);let pipe=null;return stream&&this.emit("stream",{stream,req,file:this},piped=>{pipe=piped,eos(piped,()=>{piped&&piped.destroy(),stream.destroy()})}),[res,pipe||stream,pipe&&stream]}getStreamURL(cb=()=>{}){if("undefined"==typeof window)throw new Error("browser-only method");if(!this._serviceWorker)throw new Error("No worker registered");if("activated"!==this._serviceWorker.state)throw new Error("Worker isn't activated");const workerPath=this._serviceWorker.scriptURL.substr(0,this._serviceWorker.scriptURL.lastIndexOf("/")+1).slice(window.location.origin.length),url=`${workerPath}webtorrent/${this._torrent.infoHash}/${encodeURI(this.path)}`;cb(null,url)}streamTo(elem,cb=()=>{}){if("undefined"==typeof window)throw new Error("browser-only method");if(!this._serviceWorker)throw new Error("No worker registered");if("activated"!==this._serviceWorker.state)throw new Error("Worker isn't activated");const workerPath=this._serviceWorker.scriptURL.substr(0,this._serviceWorker.scriptURL.lastIndexOf("/")+1).slice(window.location.origin.length);elem.src=`${workerPath}webtorrent/${this._torrent.infoHash}/${encodeURI(this.path)}`,cb(null,elem)}includes(piece){return this._startPiece<=piece&&this._endPiece>=piece}_getMimeType(){return render.mime[path.extname(this.name).toLowerCase()]}_destroy(){this._destroyed=!0,this._torrent=null;for(const fileStream of this._fileStreams)fileStream.destroy();this._fileStreams.clear()}}module.exports=File},{"./file-stream.js":1,"end-of-stream":135,events:70,mime:177,path:71,"queue-microtask":218,"range-parser":223,"render-media":241,stream:72,"stream-to-blob":273,"stream-to-blob-url":272,"stream-with-known-length-to-buffer":274}],3:[function(require,module,exports){const EventEmitter=require("events"),{Transform}=require("stream"),arrayRemove=require("unordered-array-remove"),debugFactory=require("debug"),Wire=require("bittorrent-protocol"),TYPE_TCP_INCOMING="tcpIncoming",TYPE_TCP_OUTGOING="tcpOutgoing",TYPE_UTP_INCOMING="utpIncoming",TYPE_UTP_OUTGOING="utpOutgoing",TYPE_WEBSEED="webSeed";exports.TYPE_TCP_INCOMING=TYPE_TCP_INCOMING,exports.TYPE_TCP_OUTGOING=TYPE_TCP_OUTGOING,exports.TYPE_UTP_INCOMING=TYPE_UTP_INCOMING,exports.TYPE_UTP_OUTGOING=TYPE_UTP_OUTGOING,exports.TYPE_WEBRTC="webrtc",exports.TYPE_WEBSEED=TYPE_WEBSEED,exports.SOURCE_MANUAL="manual",exports.SOURCE_TRACKER="tracker",exports.SOURCE_DHT="dht",exports.SOURCE_LSD="lsd",exports.SOURCE_UT_PEX="ut_pex";const debug=debugFactory("webtorrent:peer");let secure=!1;exports.enableSecure=()=>{secure=!0},exports.createWebRTCPeer=(conn,swarm,throttleGroups)=>{const peer=new Peer(conn.id,"webrtc");if(peer.conn=conn,peer.swarm=swarm,peer.throttleGroups=throttleGroups,peer.conn.connected)peer.onConnect();else{const cleanup=()=>{peer.conn.removeListener("connect",onConnect),peer.conn.removeListener("error",onError)},onConnect=()=>{cleanup(),peer.onConnect()},onError=err=>{cleanup(),peer.destroy(err)};peer.conn.once("connect",onConnect),peer.conn.once("error",onError),peer.startConnectTimeout()}return peer},exports.createTCPIncomingPeer=(conn,throttleGroups)=>_createIncomingPeer(conn,TYPE_TCP_INCOMING,throttleGroups),exports.createUTPIncomingPeer=(conn,throttleGroups)=>_createIncomingPeer(conn,TYPE_UTP_INCOMING,throttleGroups),exports.createTCPOutgoingPeer=(addr,swarm,throttleGroups)=>_createOutgoingPeer(addr,swarm,TYPE_TCP_OUTGOING,throttleGroups),exports.createUTPOutgoingPeer=(addr,swarm,throttleGroups)=>_createOutgoingPeer(addr,swarm,TYPE_UTP_OUTGOING,throttleGroups);const _createIncomingPeer=(conn,type,throttleGroups)=>{const addr=`${conn.remoteAddress}:${conn.remotePort}`,peer=new Peer(addr,type);return peer.conn=conn,peer.addr=addr,peer.throttleGroups=throttleGroups,peer.onConnect(),peer},_createOutgoingPeer=(addr,swarm,type,throttleGroups)=>{const peer=new Peer(addr,type);return peer.addr=addr,peer.swarm=swarm,peer.throttleGroups=throttleGroups,peer};exports.createWebSeedPeer=(conn,id,swarm,throttleGroups)=>{const peer=new Peer(id,TYPE_WEBSEED);return peer.swarm=swarm,peer.conn=conn,peer.throttleGroups=throttleGroups,peer.onConnect(),peer};class Peer extends EventEmitter{constructor(id,type){super(),this.id=id,this.type=type,debug("new %s Peer %s",type,id),this.addr=null,this.conn=null,this.swarm=null,this.wire=null,this.source=null,this.connected=!1,this.destroyed=!1,this.timeout=null,this.retries=0,this.sentPe1=!1,this.sentPe2=!1,this.sentPe3=!1,this.sentPe4=!1,this.sentHandshake=!1}onConnect(){if(!this.destroyed){this.connected=!0,debug("Peer %s connected",this.id),clearTimeout(this.connectTimeout);const conn=this.conn;conn.once("end",()=>{this.destroy()}),conn.once("close",()=>{this.destroy()}),conn.once("finish",()=>{this.destroy()}),conn.once("error",err=>{this.destroy(err)});const wire=this.wire=new Wire(this.type,this.retries,secure);wire.once("end",()=>{this.destroy()}),wire.once("close",()=>{this.destroy()}),wire.once("finish",()=>{this.destroy()}),wire.once("error",err=>{this.destroy(err)}),wire.once("pe1",()=>{this.onPe1()}),wire.once("pe2",()=>{this.onPe2()}),wire.once("pe3",()=>{this.onPe3()}),wire.once("pe4",()=>{this.onPe4()}),wire.once("handshake",(infoHash,peerId)=>{this.onHandshake(infoHash,peerId)}),this.startHandshakeTimeout(),this.setThrottlePipes(),this.swarm&&("tcpOutgoing"===this.type?secure&&0===this.retries&&!this.sentPe1?this.sendPe1():!this.sentHandshake&&this.handshake():"tcpIncoming"!==this.type&&!this.sentHandshake&&this.handshake())}}sendPe1(){this.wire.sendPe1(),this.sentPe1=!0}onPe1(){this.sendPe2()}sendPe2(){this.wire.sendPe2(),this.sentPe2=!0}onPe2(){this.sendPe3()}sendPe3(){this.wire.sendPe3(this.swarm.infoHash),this.sentPe3=!0}onPe3(infoHashHash){this.swarm&&(this.swarm.infoHashHash!==infoHashHash&&this.destroy(new Error("unexpected crypto handshake info hash for this swarm")),this.sendPe4())}sendPe4(){this.wire.sendPe4(this.swarm.infoHash),this.sentPe4=!0}onPe4(){this.sentHandshake||this.handshake()}clearPipes(){this.conn.unpipe(),this.wire.unpipe()}setThrottlePipes(){const self=this;this.conn.pipe(this.throttleGroups.down.throttle()).pipe(new Transform({transform(chunk,_,callback){self.emit("download",chunk.length);self.destroyed||callback(null,chunk)}})).pipe(this.wire).pipe(this.throttleGroups.up.throttle()).pipe(new Transform({transform(chunk,_,callback){self.emit("upload",chunk.length);self.destroyed||callback(null,chunk)}})).pipe(this.conn)}onHandshake(infoHash,peerId){if(!this.swarm)return;if(this.destroyed)return;if(this.swarm.destroyed)return this.destroy(new Error("swarm already destroyed"));if(infoHash!==this.swarm.infoHash)return this.destroy(new Error("unexpected handshake info hash for this swarm"));if(peerId===this.swarm.peerId)return this.destroy(new Error("refusing to connect to ourselves"));debug("Peer %s got handshake %s",this.id,infoHash),clearTimeout(this.handshakeTimeout),this.retries=0;let addr=this.addr;!addr&&this.conn.remoteAddress&&this.conn.remotePort&&(addr=`${this.conn.remoteAddress}:${this.conn.remotePort}`),this.swarm._onWire(this.wire,addr);this.swarm&&!this.swarm.destroyed&&(this.sentHandshake||this.handshake())}handshake(){const opts={dht:!this.swarm.private&&!!this.swarm.client.dht,fast:!0};this.wire.handshake(this.swarm.infoHash,this.swarm.client.peerId,opts),this.sentHandshake=!0}startConnectTimeout(){clearTimeout(this.connectTimeout);this.connectTimeout=setTimeout(()=>{this.destroy(new Error("connect timeout"))},{webrtc:25e3,tcpOutgoing:5e3,utpOutgoing:5e3}[this.type]),this.connectTimeout.unref&&this.connectTimeout.unref()}startHandshakeTimeout(){clearTimeout(this.handshakeTimeout),this.handshakeTimeout=setTimeout(()=>{this.destroy(new Error("handshake timeout"))},25e3),this.handshakeTimeout.unref&&this.handshakeTimeout.unref()}destroy(err){if(this.destroyed)return;this.destroyed=!0,this.connected=!1,debug("destroy %s %s (error: %s)",this.type,this.id,err&&(err.message||err)),clearTimeout(this.connectTimeout),clearTimeout(this.handshakeTimeout);const swarm=this.swarm,conn=this.conn,wire=this.wire;this.swarm=null,this.conn=null,this.wire=null,swarm&&wire&&arrayRemove(swarm.wires,swarm.wires.indexOf(wire)),conn&&(conn.on("error",()=>{}),conn.destroy()),wire&&wire.destroy(),swarm&&swarm.removePeer(this.id)}}},{"bittorrent-protocol":32,debug:105,events:70,stream:72,"unordered-array-remove":284}],4:[function(require,module){module.exports=class{constructor(torrent){this._torrent=torrent,this._numPieces=torrent.pieces.length,this._pieces=Array(this._numPieces),this._onWire=wire=>{this.recalculate(),this._initWire(wire)},this._onWireHave=index=>{this._pieces[index]+=1},this._onWireBitfield=()=>{this.recalculate()},this._torrent.wires.forEach(wire=>{this._initWire(wire)}),this._torrent.on("wire",this._onWire),this.recalculate()}getRarestPiece(pieceFilterFunc){let candidates=[],min=1/0;for(let i=0;i{this._cleanupWireEvents(wire)}),this._torrent=null,this._pieces=null,this._onWire=null,this._onWireHave=null,this._onWireBitfield=null}_initWire(wire){wire._onClose=()=>{this._cleanupWireEvents(wire);for(let i=0;i{this.destroyed||this._onParsedTorrent(parsedTorrent)})):parseTorrent.remote(torrentId,(err,parsedTorrent)=>this.destroyed?void 0:err?this._destroy(err):void this._onParsedTorrent(parsedTorrent))}_onParsedTorrent(parsedTorrent){if(!this.destroyed){if(this._processParsedTorrent(parsedTorrent),!this.infoHash)return this._destroy(new Error("Malformed torrent data: No info hash"));(this._rechokeIntervalId=setInterval(()=>{this._rechoke()},1e4),this._rechokeIntervalId.unref&&this._rechokeIntervalId.unref(),this.emit("_infoHash",this.infoHash),!this.destroyed)&&(this.emit("infoHash",this.infoHash),this.destroyed||(this.client.listening?this._onListening():this.client.once("listening",()=>{this._onListening()})))}}_processParsedTorrent(parsedTorrent){this._debugId=parsedTorrent.infoHash.toString("hex").substring(0,7),"undefined"!=typeof this.private&&(parsedTorrent.private=this.private),this.announce&&(parsedTorrent.announce=parsedTorrent.announce.concat(this.announce)),this.client.tracker&&global.WEBTORRENT_ANNOUNCE&&!parsedTorrent.private&&(parsedTorrent.announce=parsedTorrent.announce.concat(global.WEBTORRENT_ANNOUNCE)),this.urlList&&(parsedTorrent.urlList=parsedTorrent.urlList.concat(this.urlList)),parsedTorrent.announce=Array.from(new Set(parsedTorrent.announce)),parsedTorrent.urlList=Array.from(new Set(parsedTorrent.urlList)),Object.assign(this,parsedTorrent),this.magnetURI=parseTorrent.toMagnetURI(parsedTorrent),this.torrentFile=parseTorrent.toTorrentFile(parsedTorrent)}_onListening(){this.destroyed||(this.info?this._onMetadata(this):(this.xs&&this._getMetadataFromServer(),this._startDiscovery()))}_startDiscovery(){if(this.discovery||this.destroyed)return;let trackerOpts=this.client.tracker;trackerOpts&&(trackerOpts=Object.assign({},this.client.tracker,{getAnnounceOpts:()=>{if(!this.destroyed){const opts={uploaded:this.uploaded,downloaded:this.downloaded,left:_Mathmax(this.length-this.downloaded,0)};return this.client.tracker.getAnnounceOpts&&Object.assign(opts,this.client.tracker.getAnnounceOpts()),this._getAnnounceOpts&&Object.assign(opts,this._getAnnounceOpts()),opts}}})),this.peerAddresses&&this.peerAddresses.forEach(peer=>this.addPeer(peer,Peer.SOURCE_MANUAL)),this.discovery=new Discovery({infoHash:this.infoHash,announce:this.announce,peerId:this.client.peerId,dht:!this.private&&this.client.dht,tracker:trackerOpts,port:this.client.torrentPort,userAgent:USER_AGENT,lsd:this.client.lsd}),this.discovery.on("error",err=>{this._destroy(err)}),this.discovery.on("peer",(peer,source)=>{this._debug("peer %s discovered via %s",peer,source);"string"==typeof peer&&this.done||this.addPeer(peer,source)}),this.discovery.on("trackerAnnounce",()=>{this.emit("trackerAnnounce")}),this.discovery.on("dhtAnnounce",()=>{this.emit("dhtAnnounce")}),this.discovery.on("warning",err=>{this.emit("warning",err)}),this._noPeersIntervalId=setInterval(()=>{if(!this.destroyed){const counters={[Peer.SOURCE_TRACKER]:{enabled:!!this.client.tracker,numPeers:0},[Peer.SOURCE_DHT]:{enabled:!!this.client.dht,numPeers:0},[Peer.SOURCE_LSD]:{enabled:!!this.client.lsd,numPeers:0},[Peer.SOURCE_UT_PEX]:{enabled:this.client.utPex&&"function"==typeof utPex,numPeers:0}};for(const peer of Object.values(this._peers)){const counter=counters[peer.source];"undefined"!=typeof counter&&counter.numPeers++}for(const source of Object.keys(counters)){const counter=counters[source];counter.enabled&&0===counter.numPeers&&this.emit("noPeers",source)}}},this._noPeersIntervalTime),this._noPeersIntervalId.unref&&this._noPeersIntervalId.unref()}_getMetadataFromServer(){function getMetadataFromURL(url,cb){function onResponse(err,res,torrent){if(self.destroyed)return cb(null);if(self.metadata)return cb(null);if(err)return self.emit("warning",new Error(`http error from xs param: ${url}`)),cb(null);if(200!==res.statusCode)return self.emit("warning",new Error(`non-200 status code ${res.statusCode} from xs param: ${url}`)),cb(null);let parsedTorrent;try{parsedTorrent=parseTorrent(torrent)}catch(err){}return parsedTorrent?parsedTorrent.infoHash===self.infoHash?void(self._onMetadata(parsedTorrent),cb(null)):(self.emit("warning",new Error(`got torrent file with incorrect info hash from xs param: ${url}`)),cb(null)):(self.emit("warning",new Error(`got invalid torrent file from xs param: ${url}`)),cb(null))}if(0!==url.indexOf("http://")&&0!==url.indexOf("https://"))return self.emit("warning",new Error(`skipping non-http xs param: ${url}`)),cb(null);let req;try{req=get.concat({url,method:"GET",headers:{"user-agent":USER_AGENT}},onResponse)}catch(err){return self.emit("warning",new Error(`skipping invalid url xs param: ${url}`)),cb(null)}self._xsRequests.push(req)}const self=this,urls=Array.isArray(this.xs)?this.xs:[this.xs],tasks=urls.map(url=>cb=>{getMetadataFromURL(url,cb)});parallel(tasks)}_onMetadata(metadata){if(this.metadata||this.destroyed)return;this._debug("got metadata"),this._xsRequests.forEach(req=>{req.abort()}),this._xsRequests=[];let parsedTorrent;if(metadata&&metadata.infoHash)parsedTorrent=metadata;else try{parsedTorrent=parseTorrent(metadata)}catch(err){return this._destroy(err)}this._processParsedTorrent(parsedTorrent),this.metadata=this.torrentFile,this.client.enableWebSeeds&&this.urlList.forEach(url=>{this.addWebSeed(url)}),this._rarityMap=new RarityMap(this),this.files=this.files.map(file=>new File(this,file));let rawStore=this._preloadedStore;if(rawStore||(rawStore=new this._store(this.pieceLength,{...this.storeOpts,torrent:this,path:this.path,files:this.files,length:this.length,name:this.name+" - "+this.infoHash.slice(0,8),addUID:this.addUID})),0{this.so.includes(i)?this.files[i].select():this.files[i].deselect()}):0!==this.pieces.length&&this.select(0,this.pieces.length-1,!1),this._hashes=this.pieces,this.pieces=this.pieces.map((hash,i)=>{const pieceLength=i===this.pieces.length-1?this.lastPieceLength:this.pieceLength;return new Piece(pieceLength)}),this._reservations=this.pieces.map(()=>[]),this.bitfield=new BitField(this.pieces.length),this.wires.forEach(wire=>{wire.ut_metadata&&wire.ut_metadata.setMetadata(this.metadata),this._onWireWithMetadata(wire)}),this.emit("metadata"),!this.destroyed)if(this.skipVerify)this._markAllVerified(),this._onStore();else{const onPiecesVerified=err=>err?this._destroy(err):void(this._debug("done verifying"),this._onStore());this._debug("verifying existing torrent data"),this._fileModtimes&&this._store===FSChunkStore?this.getFileModtimes((err,fileModtimes)=>{if(err)return this._destroy(err);const unchanged=this.files.map((_,index)=>fileModtimes[index]===this._fileModtimes[index]).every(x=>x);unchanged?(this._markAllVerified(),this._onStore()):this._verifyPieces(onPiecesVerified)}):this._verifyPieces(onPiecesVerified)}}getFileModtimes(cb){const ret=[];parallelLimit(this.files.map((file,index)=>cb=>{const filePath=this.addUID?path.join(this.name+" - "+this.infoHash.slice(0,8)):path.join(this.path,file.path);fs.stat(filePath,(err,stat)=>err&&"ENOENT"!==err.code?cb(err):void(ret[index]=stat&&stat.mtime.getTime(),cb(null)))}),FILESYSTEM_CONCURRENCY,err=>{this._debug("done getting file modtimes"),cb(err,ret)})}_verifyPieces(cb){parallelLimit(this.pieces.map((piece,index)=>cb=>{if(this.destroyed)return cb(new Error("torrent is destroyed"));const getOpts={};index===this.pieces.length-1&&(getOpts.length=this.lastPieceLength),this.store.get(index,getOpts,(err,buf)=>this.destroyed?cb(new Error("torrent is destroyed")):err?queueMicrotask(()=>cb(null)):void sha1(buf,hash=>this.destroyed?cb(new Error("torrent is destroyed")):void(hash===this._hashes[index]?(this._debug("piece verified %s",index),this._markVerified(index)):(this._markUnverified(index),this._debug("piece invalid %s",index)),cb(null))))}),FILESYSTEM_CONCURRENCY,cb)}rescanFiles(cb){if(this.destroyed)throw new Error("torrent is destroyed");cb||(cb=noop),this._verifyPieces(err=>err?(this._destroy(err),cb(err)):void(this._checkDone(),cb(null)))}_markAllVerified(){for(let index=0;index{file.done&&file.includes(index)&&(file.done=!1)})}_hasAllPieces(){for(let index=0;indexthreshold))return!0;return!1}_onStore(){this.destroyed||(this._debug("on store"),this._startDiscovery(),this.ready=!0,this.emit("ready"),this._checkDone(),this._updateSelections())}destroy(opts,cb){return"function"==typeof opts?this.destroy(null,opts):void this._destroy(null,opts,cb)}_destroy(err,opts,cb){if("function"==typeof opts)return this._destroy(err,null,opts);if(!this.destroyed){for(const id in this.destroyed=!0,this._debug("destroy"),this.client._remove(this),clearInterval(this._rechokeIntervalId),clearInterval(this._noPeersIntervalId),this._xsRequests.forEach(req=>{req.abort()}),this._rarityMap&&this._rarityMap.destroy(),this._peers)this.removePeer(id);this.files.forEach(file=>{file instanceof File&&file._destroy()});const tasks=this._servers.map(server=>cb=>{server.destroy(cb)});if(this.discovery&&tasks.push(cb=>{this.discovery.destroy(cb)}),this.store){let destroyStore=this._destroyStoreOnDestroy;opts&&void 0!==opts.destroyStore&&(destroyStore=opts.destroyStore),tasks.push(cb=>{destroyStore?this.store.destroy(cb):this.store.close(cb)})}parallel(tasks,cb),err&&(0===this.listenerCount("error")?this.client.emit("error",err):this.emit("error",err)),this.emit("close"),this.client=null,this.files=[],this.discovery=null,this.store=null,this._rarityMap=null,this._peers=null,this._servers=null,this._xsRequests=null}}addPeer(peer,source){if(this.destroyed)throw new Error("torrent is destroyed");if(!this.infoHash)throw new Error("addPeer() must not be called before the `infoHash` event");let host;if(this.client.blocked){if("string"==typeof peer){let parts;try{parts=addrToIPPort(peer)}catch(e){return this._debug("ignoring peer: invalid %s",peer),this.emit("invalidPeer",peer),!1}host=parts[0]}else"string"==typeof peer.remoteAddress&&(host=peer.remoteAddress);if(host&&this.client.blocked.contains(host))return this._debug("ignoring peer: blocked %s",peer),"string"!=typeof peer&&peer.destroy(),this.emit("blockedPeer",peer),!1}const type=this.client.utp&&this._isIPv4(host)?"utp":"tcp",wasAdded=!!this._addPeer(peer,type,source);return wasAdded?this.emit("peer",peer):this.emit("invalidPeer",peer),wasAdded}_addPeer(peer,type){if(this.destroyed)return"string"!=typeof peer&&peer.destroy(),null;if("string"==typeof peer&&!this._validAddr(peer))return this._debug("ignoring peer: invalid %s",peer),null;const id=peer&&peer.id||peer;if(this._peers[id])return this._debug("ignoring peer: duplicate (%s)",id),"string"!=typeof peer&&peer.destroy(),null;if(this.paused)return this._debug("ignoring peer: torrent is paused"),"string"!=typeof peer&&peer.destroy(),null;this._debug("add peer %s",id);let newPeer;return newPeer="string"==typeof peer?"utp"===type?Peer.createUTPOutgoingPeer(peer,this,this.client.throttleGroups):Peer.createTCPOutgoingPeer(peer,this,this.client.throttleGroups):Peer.createWebRTCPeer(peer,this,this.client.throttleGroups),this._registerPeer(newPeer),"string"==typeof peer&&(this._queue.push(newPeer),this._drain()),newPeer}addWebSeed(urlOrConn){if(this.destroyed)throw new Error("torrent is destroyed");let id,conn;if("string"==typeof urlOrConn){if(id=urlOrConn,!/^https?:\/\/.+/.test(id))return this.emit("warning",new Error(`ignoring invalid web seed: ${id}`)),void this.emit("invalidPeer",id);if(this._peers[id])return this.emit("warning",new Error(`ignoring duplicate web seed: ${id}`)),void this.emit("invalidPeer",id);conn=new WebConn(id,this)}else{if(!(urlOrConn&&"string"==typeof urlOrConn.connId))return void this.emit("warning",new Error("addWebSeed must be passed a string or connection object with id property"));if(conn=urlOrConn,id=conn.connId,this._peers[id])return this.emit("warning",new Error(`ignoring duplicate web seed: ${id}`)),void this.emit("invalidPeer",id)}this._debug("add web seed %s",id);const newPeer=Peer.createWebSeedPeer(conn,id,this,this.client.throttleGroups);this._registerPeer(newPeer),this.emit("peer",id)}_addIncomingPeer(peer){return this.destroyed?peer.destroy(new Error("torrent is destroyed")):this.paused?peer.destroy(new Error("torrent is paused")):void(this._debug("add incoming peer %s",peer.id),this._registerPeer(peer))}_registerPeer(newPeer){newPeer.on("download",downloaded=>{this.destroyed||(this.received+=downloaded,this._downloadSpeed(downloaded),this.client._downloadSpeed(downloaded),this.emit("download",downloaded),this.destroyed||this.client.emit("download",downloaded))}),newPeer.on("upload",uploaded=>{this.destroyed||(this.uploaded+=uploaded,this._uploadSpeed(uploaded),this.client._uploadSpeed(uploaded),this.emit("upload",uploaded),this.destroyed||this.client.emit("upload",uploaded))}),this._peers[newPeer.id]=newPeer,this._peersLength+=1}removePeer(peer){const id=peer&&peer.id||peer;peer=this._peers[id];peer&&(this._debug("removePeer %s",id),delete this._peers[id],this._peersLength-=1,peer.destroy(),this._drain())}select(start,end,priority,notify){if(this.destroyed)throw new Error("torrent is destroyed");if(0>start||endb.priority-a.priority),this._updateSelections()}deselect(start,end,priority){if(this.destroyed)throw new Error("torrent is destroyed");priority=+priority||0,this._debug("deselect %s-%s (priority %s)",start,end,priority);for(let i=0;ithis.destroyed||this.client.dht.destroyed?void 0:wire.remoteAddress?0===port||65536{this._debug("wire timeout (%s)",addr),wire.destroy()}),"webSeed"!==wire.type&&wire.setTimeout(3e4,!0),wire.setKeepAlive(!0),wire.use(utMetadata(this.metadata)),wire.ut_metadata.on("warning",err=>{this._debug("ut_metadata warning: %s",err.message)}),this.metadata||(wire.ut_metadata.on("metadata",metadata=>{this._debug("got metadata via ut_metadata"),this._onMetadata(metadata)}),wire.ut_metadata.fetch()),this.client.utPex&&"function"==typeof utPex&&!this.private&&(wire.use(utPex()),wire.ut_pex.on("peer",peer=>{this.done||(this._debug("ut_pex: got peer: %s (from %s)",peer,addr),this.addPeer(peer,Peer.SOURCE_UT_PEX))}),wire.ut_pex.on("dropped",peer=>{const peerObj=this._peers[peer];peerObj&&!peerObj.connected&&(this._debug("ut_pex: dropped peer: %s (from %s)",peer,addr),this.removePeer(peer))}),wire.once("close",()=>{wire.ut_pex.reset()})),wire.use(ltDontHave()),this.emit("wire",wire,addr),this.metadata&&queueMicrotask(()=>{this._onWireWithMetadata(wire)})}_onWireWithMetadata(wire){let timeoutId=null;const onChokeTimeout=()=>{this.destroyed||wire.destroyed||(this._numQueued>2*(this._numConns-this.numPeers)&&wire.amInterested?wire.destroy():(timeoutId=setTimeout(onChokeTimeout,CHOKE_TIMEOUT),timeoutId.unref&&timeoutId.unref()))};let i;const updateSeedStatus=()=>{if(wire.peerPieces.buffer.length===this.bitfield.buffer.length){for(i=0;i{updateSeedStatus(),this._update(),this._updateWireInterest(wire)}),wire.on("have",()=>{updateSeedStatus(),this._update(),this._updateWireInterest(wire)}),wire.lt_donthave.on("donthave",()=>{updateSeedStatus(),this._update(),this._updateWireInterest(wire)}),wire.on("have-all",()=>{wire.isSeeder=!0,wire.choke(),this._update(),this._updateWireInterest(wire)}),wire.on("have-none",()=>{wire.isSeeder=!1,this._update(),this._updateWireInterest(wire)}),wire.on("allowed-fast",()=>{this._update()}),wire.once("interested",()=>{wire.unchoke()}),wire.once("close",()=>{clearTimeout(timeoutId)}),wire.on("choke",()=>{clearTimeout(timeoutId),timeoutId=setTimeout(onChokeTimeout,CHOKE_TIMEOUT),timeoutId.unref&&timeoutId.unref()}),wire.on("unchoke",()=>{clearTimeout(timeoutId),this._update()}),wire.on("request",(index,offset,length,cb)=>length>131072?wire.destroy():void(this.pieces[index]||this.store.get(index,{offset,length},cb))),wire.hasFast&&this._hasAllPieces()?wire.haveAll():wire.hasFast&&this._hasNoPieces()?wire.haveNone():wire.bitfield(this.bitfield),this._updateWireInterest(wire),wire.peerExtensions.dht&&this.client.dht&&this.client.dht.listening&&wire.port(this.client.dht.address().port),"webSeed"!==wire.type&&(timeoutId=setTimeout(onChokeTimeout,CHOKE_TIMEOUT),timeoutId.unref&&timeoutId.unref()),wire.isSeeder=!1,updateSeedStatus()}_updateSelections(){!this.ready||this.destroyed||(queueMicrotask(()=>{this._gcSelections()}),this._updateInterest(),this._update())}_gcSelections(){for(let i=0;ithis._updateWireInterest(wire));prev===this._amInterested||(this._amInterested?this.emit("interested"):this.emit("uninterested"))}_updateWireInterest(wire){let interested=!1;for(let index=0;index{self._updateWire(wire)},{timeout:250}):self._updateWire(wire)}_updateWire(wire){function genPieceFilterFunc(start,end,tried,rank){return i=>i>=start&&i<=end&&!(i in tried)&&wire.peerPieces.get(i)&&(!rank||rank(i))}function speedRanker(){const speed=wire.downloadSpeed()||1;if(speed>SPEED_THRESHOLD)return()=>!0;const secs=_Mathmax(1,wire.requests.length)*Piece.BLOCK_LENGTH/speed;let tries=10,ptr=0;return index=>{if(!tries||self.bitfield.get(index))return!0;for(let missing=self.pieces[index].missing;ptr=maxOutstandingRequests)return!0;const rank=speedRanker();for(let i=0;ipiece));){for(;self._request(wire,piece,self._critical[piece]||hotswap)&&wire.requests.length=minOutstandingRequests)return;const maxOutstandingRequests=getBlockPipelineLength(wire,PIPELINE_MAX_DURATION);return wire.peerChoking?void(wire.hasFast&&0=maxOutstandingRequests)return!1;for(const piece of wire.peerAllowedFastSet){if(wire.peerPieces.get(piece)&&!self.bitfield.get(piece))for(;self._request(wire,piece,!1)&&wire.requests.lengthpiece));){if(self._request(wire,piece,!1))return;tried[piece]=!0,tries+=1}}else for(piece=next.to;piece>=next.from+next.offset;--piece)if(wire.peerPieces.get(piece)&&self._request(wire,piece,!1))return}}()}_rechoke(){if(this.ready){const wireStack=this.wires.map(wire=>({wire,random:Math.random()})).sort((objA,objB)=>{const wireA=objA.wire,wireB=objB.wire;return wireA.downloadSpeed()===wireB.downloadSpeed()?wireA.uploadSpeed()===wireB.uploadSpeed()?wireA.amChoking===wireB.amChoking?objA.random-objB.random:wireA.amChoking?-1:1:wireA.uploadSpeed()-wireB.uploadSpeed():wireA.downloadSpeed()-wireB.downloadSpeed()}).map(obj=>obj.wire);0>=this._rechokeOptimisticTime?this._rechokeOptimisticWire=null:this._rechokeOptimisticTime-=1;for(let numInterestedUnchoked=0;0wire.peerInterested);if(0wire!==this._rechokeOptimisticWire).forEach(wire=>wire.choke())}}_hotswap(wire,index){const speed=wire.downloadSpeed();if(speed=SPEED_THRESHOLD||2*otherSpeed>speed||otherSpeed>minSpeed||(minWire=otherWire,minSpeed=otherSpeed)}if(!minWire)return!1;for(i=0;i{self._update()})}const self=this,numRequests=wire.requests.length,isWebSeed="webSeed"===wire.type;if(self.bitfield.get(index))return!1;const maxOutstandingRequests=isWebSeed?_Mathmin(getPiecePipelineLength(wire,PIPELINE_MAX_DURATION,self.pieceLength),self.maxWebConns):getBlockPipelineLength(wire,PIPELINE_MAX_DURATION);if(numRequests>=maxOutstandingRequests)return!1;const piece=self.pieces[index];let reservation=isWebSeed?piece.reserveRemaining():piece.reserve();if(-1===reservation&&hotswap&&self._hotswap(wire,index)&&(reservation=isWebSeed?piece.reserveRemaining():piece.reserve()),-1===reservation)return!1;let r=self._reservations[index];r||(r=self._reservations[index]=[]);let i=r.indexOf(null);-1===i&&(i=r.length),r[i]=wire;const chunkOffset=piece.chunkOffset(reservation),chunkLength=isWebSeed?piece.chunkLengthRemaining(reservation):piece.chunkLength(reservation);return wire.request(index,chunkOffset,chunkLength,function onChunk(err,chunk){if(self.destroyed)return;if(!self.ready)return self.once("ready",()=>{onChunk(err,chunk)});if(r[i]===wire&&(r[i]=null),piece!==self.pieces[index])return onUpdateTick();if(err)return self._debug("error getting piece %s (offset: %s length: %s) from %s: %s",index,chunkOffset,chunkLength,`${wire.remoteAddress}:${wire.remotePort}`,err.message),isWebSeed?piece.cancelRemaining(reservation):piece.cancel(reservation),void onUpdateTick();if(self._debug("got piece %s (offset: %s length: %s) from %s",index,chunkOffset,chunkLength,`${wire.remoteAddress}:${wire.remotePort}`),!piece.set(reservation,chunk,wire))return onUpdateTick();const buf=piece.flush();sha1(buf,hash=>{self.destroyed||(hash===self._hashes[index]?(self._debug("piece verified %s",index),self.store.put(index,buf,err=>err?void self._destroy(err):void(self.pieces[index]=null,self._markVerified(index),self.wires.forEach(wire=>{wire.have(index)}),self._checkDone()&&!self.destroyed&&self.discovery.complete(),onUpdateTick()))):(self.pieces[index]=new Piece(piece.length),self.emit("warning",new Error(`Piece ${index} failed verification`)),onUpdateTick()))})}),!0}_checkDone(){if(this.destroyed)return;this.files.forEach(file=>{if(!file.done){for(let i=file._startPiece;i<=file._endPiece;++i)if(!this.bitfield.get(i))return;file.done=!0,file.emit("done"),this._debug(`file done: ${file.name}`)}});let done=!0;for(const selection of this._selections){for(let piece=selection.from;piece<=selection.to;piece++)if(!this.bitfield.get(piece)){done=!1;break}if(!done)break}return!this.done&&done?(this.done=!0,this._debug(`torrent done: ${this.infoHash}`),this.emit("done")):this.done=!1,this._gcSelections(),done}load(streams,cb){if(this.destroyed)throw new Error("torrent is destroyed");if(!this.ready)return this.once("ready",()=>{this.load(streams,cb)});Array.isArray(streams)||(streams=[streams]),cb||(cb=noop);const readable=new MultiStream(streams),writable=new ChunkStoreWriteStream(this.store,this.pieceLength);pump(readable,writable,err=>err?cb(err):void(this._markAllVerified(),this._checkDone(),cb(null)))}createServer(requestListener){if("function"!=typeof Server)throw new Error("node.js-only method");if(this.destroyed)throw new Error("torrent is destroyed");const server=new Server(this,requestListener);return this._servers.push(server),server}pause(){this.destroyed||(this._debug("pause"),this.paused=!0)}resume(){this.destroyed||(this._debug("resume"),this.paused=!1,this._drain())}_debug(){const args=[].slice.call(arguments);args[0]=`[${this.client?this.client._debugId:"No Client"}] [${this._debugId}] ${args[0]}`,debug(...args)}_drain(){if(this._debug("_drain numConns %s maxConns %s",this._numConns,this.client.maxConns),"function"!=typeof net.connect||this.destroyed||this.paused||this._numConns>=this.client.maxConns)return;this._debug("drain (%s queued, %s/%s peers)",this._numQueued,this.numPeers,this.client.maxConns);const peer=this._queue.shift();if(!peer)return;this._debug("%s connect attempt to %s",peer.type,peer.addr);const parts=addrToIPPort(peer.addr),opts={host:parts[0],port:parts[1]};peer.conn=this.client.utp&&peer.type===Peer.TYPE_UTP_OUTGOING?utp.connect(opts.port,opts.host):net.connect(opts);const conn=peer.conn;conn.once("connect",()=>{peer.onConnect()}),conn.once("error",err=>{peer.destroy(err)}),peer.startConnectTimeout(),conn.on("close",()=>{if(!this.destroyed){if(peer.retries>=RECONNECT_WAIT.length){if(this.client.utp){const newPeer=this._addPeer(peer.addr,"tcp",peer.source);newPeer&&(newPeer.retries=0)}else this._debug("conn %s closed: will not re-add (max %s attempts)",peer.addr,RECONNECT_WAIT.length);return}const ms=RECONNECT_WAIT[peer.retries];this._debug("conn %s closed: will re-add to queue in %sms (attempt %s)",peer.addr,ms,peer.retries+1);const reconnectTimeout=setTimeout(()=>{if(!this.destroyed){const host=addrToIPPort(peer.addr)[0],type=this.client.utp&&this._isIPv4(host)?"utp":"tcp",newPeer=this._addPeer(peer.addr,type,peer.source);newPeer&&(newPeer.retries=peer.retries+1)}},ms);reconnectTimeout.unref&&reconnectTimeout.unref()}})}_validAddr(addr){let parts;try{parts=addrToIPPort(addr)}catch(e){return!1}const host=parts[0],port=parts[1];return 0port&&("127.0.0.1"!==host||port!==this.client.torrentPort)}_isIPv4(addr){return /^((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$/.test(addr)}}module.exports=Torrent}).call(this)}).call(this,require("_process"),"undefined"==typeof global?"undefined"==typeof self?"undefined"==typeof window?{}:window:self:global)},{"../package.json":293,"./file.js":2,"./peer.js":3,"./rarity-map.js":4,"./server.js":41,"./utp.js":41,"./webconn.js":6,_process:205,"addr-to-ip-port":7,bitfield:31,"cache-chunk-store":92,"chunk-store-stream/write":93,cpus:96,debug:105,events:70,fs:41,"fs-chunk-store":173,"immediate-chunk-store":158,lt_donthave:169,"memory-chunk-store":173,multistream:189,net:41,os:41,"parse-torrent":197,path:71,pump:213,"queue-microtask":218,"random-iterate":220,"run-parallel":245,"run-parallel-limit":244,"simple-get":258,"simple-sha1":260,speedometer:267,"torrent-discovery":280,"torrent-piece":281,ut_metadata:287,ut_pex:41}],6:[function(require,module){(function(Buffer){(function(){const{default:BitField}=require("bitfield"),debugFactory=require("debug"),get=require("simple-get"),ltDontHave=require("lt_donthave"),sha1=require("simple-sha1"),Wire=require("bittorrent-protocol"),debug=debugFactory("webtorrent:webconn"),VERSION=require("../package.json").version;module.exports=class extends Wire{constructor(url,torrent){super(),this.url=url,this.connId=url,this.webPeerId=sha1.sync(url),this._torrent=torrent,this._init()}_init(){this.setKeepAlive(!0),this.use(ltDontHave()),this.once("handshake",infoHash=>{if(this.destroyed)return;this.handshake(infoHash,this.webPeerId);const numPieces=this._torrent.pieces.length,bitfield=new BitField(numPieces);for(let i=0;i<=numPieces;i++)bitfield.set(i,!0);this.bitfield(bitfield)}),this.once("interested",()=>{debug("interested"),this.unchoke()}),this.on("uninterested",()=>{debug("uninterested")}),this.on("choke",()=>{debug("choke")}),this.on("unchoke",()=>{debug("unchoke")}),this.on("bitfield",()=>{debug("bitfield")}),this.lt_donthave.on("donthave",()=>{debug("donthave")}),this.on("request",(pieceIndex,offset,length,callback)=>{debug("request pieceIndex=%d offset=%d length=%d",pieceIndex,offset,length),this.httpRequest(pieceIndex,offset,length,(err,data)=>{if(err){this.lt_donthave.donthave(pieceIndex);const retryTimeout=setTimeout(()=>{this.destroyed||this.have(pieceIndex)},1e4);retryTimeout.unref&&retryTimeout.unref()}callback(err,data)})})}httpRequest(pieceIndex,offset,length,cb){const pieceOffset=pieceIndex*this._torrent.pieceLength,rangeStart=pieceOffset+offset,rangeEnd=rangeStart+length-1,files=this._torrent.files;let requests;if(1>=files.length)requests=[{url:this.url,start:rangeStart,end:rangeEnd}];else{const requestedFiles=files.filter(file=>file.offset<=rangeEnd&&file.offset+file.length>rangeStart);if(1>requestedFiles.length)return cb(new Error("Could not find file corresponding to web seed range request"));requests=requestedFiles.map(requestedFile=>{const fileEnd=requestedFile.offset+requestedFile.length-1,url=this.url+("/"===this.url[this.url.length-1]?"":"/")+requestedFile.path;return{url,fileOffsetInRange:_Mathmax(requestedFile.offset-rangeStart,0),start:_Mathmax(rangeStart-requestedFile.offset,0),end:_Mathmin(fileEnd,rangeEnd-requestedFile.offset)}})}let numRequestsSucceeded=0,hasError=!1,ret;1{function onResponse(res,data){return 200>res.statusCode||300<=res.statusCode?hasError?void 0:(hasError=!0,cb(new Error(`Unexpected HTTP status code ${res.statusCode}`))):void(debug("Got data of length %d",data.length),1===requests.length?cb(null,data):(data.copy(ret,request.fileOffsetInRange),++numRequestsSucceeded===requests.length&&cb(null,ret)))}const url=request.url,start=request.start,end=request.end;debug("Requesting url=%s pieceIndex=%d offset=%d length=%d start=%d end=%d",url,pieceIndex,offset,length,start,end);const opts={url,method:"GET",headers:{"user-agent":`WebTorrent/${VERSION} (https://webtorrent.io)`,range:`bytes=${start}-${end}`},timeout:6e4};get.concat(opts,(err,res,data)=>hasError?void 0:err?"undefined"==typeof window||url.startsWith(`${window.location.origin}/`)?(hasError=!0,cb(err)):get.head(url,(errHead,res)=>hasError?void 0:errHead?(hasError=!0,cb(errHead)):200>res.statusCode||300<=res.statusCode?(hasError=!0,cb(new Error(`Unexpected HTTP status code ${res.statusCode}`))):res.url===url?(hasError=!0,cb(err)):void(opts.url=res.url,get.concat(opts,(err,res,data)=>hasError?void 0:err?(hasError=!0,cb(err)):void onResponse(res,data)))):void onResponse(res,data))})}destroy(){super.destroy(),this._torrent=null}}}).call(this)}).call(this,require("buffer").Buffer)},{"../package.json":293,bitfield:31,"bittorrent-protocol":32,buffer:69,debug:105,lt_donthave:169,"simple-get":258,"simple-sha1":260}],7:[function(require,module){let cache=new Map;module.exports=function(addr){if(1e5===cache.size&&cache.clear(),!cache.has(addr)){const m=/^\[?([^\]]+)]?:(\d+)$/.exec(addr);if(!m)throw new Error(`invalid addr: ${addr}`);cache.set(addr,[m[1],+m[2]])}return cache.get(addr)}},{}],8:[function(require,module,exports){"use strict";const asn1=exports;asn1.bignum=require("bn.js"),asn1.define=require("./asn1/api").define,asn1.base=require("./asn1/base"),asn1.constants=require("./asn1/constants"),asn1.decoders=require("./asn1/decoders"),asn1.encoders=require("./asn1/encoders")},{"./asn1/api":9,"./asn1/base":11,"./asn1/constants":15,"./asn1/decoders":17,"./asn1/encoders":20,"bn.js":22}],9:[function(require,module,exports){"use strict";function Entity(name,body){this.name=name,this.body=body,this.decoders={},this.encoders={}}const encoders=require("./encoders"),decoders=require("./decoders"),inherits=require("inherits");exports.define=function(name,body){return new Entity(name,body)},Entity.prototype._createNamed=function(Base){function Generated(entity){this._initNamed(entity,name)}const name=this.name;return inherits(Generated,Base),Generated.prototype._initNamed=function(entity,name){Base.call(this,entity,name)},new Generated(this)},Entity.prototype._getDecoder=function(enc){return enc=enc||"der",this.decoders.hasOwnProperty(enc)||(this.decoders[enc]=this._createNamed(decoders[enc])),this.decoders[enc]},Entity.prototype.decode=function(data,enc,options){return this._getDecoder(enc).decode(data,options)},Entity.prototype._getEncoder=function(enc){return enc=enc||"der",this.encoders.hasOwnProperty(enc)||(this.encoders[enc]=this._createNamed(encoders[enc])),this.encoders[enc]},Entity.prototype.encode=function(data,enc,reporter){return this._getEncoder(enc).encode(data,reporter)}},{"./decoders":17,"./encoders":20,inherits:159}],10:[function(require,module,exports){"use strict";function DecoderBuffer(base,options){return Reporter.call(this,options),Buffer.isBuffer(base)?void(this.base=base,this.offset=0,this.length=base.length):void this.error("Input not Buffer")}function EncoderBuffer(value,reporter){if(Array.isArray(value))this.length=0,this.value=value.map(function(item){return EncoderBuffer.isEncoderBuffer(item)||(item=new EncoderBuffer(item,reporter)),this.length+=item.length,item},this);else if("number"==typeof value){if(!(0<=value&&255>=value))return reporter.error("non-byte EncoderBuffer value");this.value=value,this.length=1}else if("string"==typeof value)this.value=value,this.length=Buffer.byteLength(value);else if(Buffer.isBuffer(value))this.value=value,this.length=value.length;else return reporter.error("Unsupported type: "+typeof value)}const inherits=require("inherits"),Reporter=require("../base/reporter").Reporter,Buffer=require("safer-buffer").Buffer;inherits(DecoderBuffer,Reporter),exports.DecoderBuffer=DecoderBuffer,DecoderBuffer.isDecoderBuffer=function(data){if(data instanceof DecoderBuffer)return!0;const isCompatible="object"==typeof data&&Buffer.isBuffer(data.base)&&"DecoderBuffer"===data.constructor.name&&"number"==typeof data.offset&&"number"==typeof data.length&&"function"==typeof data.save&&"function"==typeof data.restore&&"function"==typeof data.isEmpty&&"function"==typeof data.readUInt8&&"function"==typeof data.skip&&"function"==typeof data.raw;return isCompatible},DecoderBuffer.prototype.save=function(){return{offset:this.offset,reporter:Reporter.prototype.save.call(this)}},DecoderBuffer.prototype.restore=function(save){const res=new DecoderBuffer(this.base);return res.offset=save.offset,res.length=this.offset,this.offset=save.offset,Reporter.prototype.restore.call(this,save.reporter),res},DecoderBuffer.prototype.isEmpty=function(){return this.offset===this.length},DecoderBuffer.prototype.readUInt8=function(fail){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(fail||"DecoderBuffer overrun")},DecoderBuffer.prototype.skip=function(bytes,fail){if(!(this.offset+bytes<=this.length))return this.error(fail||"DecoderBuffer overrun");const res=new DecoderBuffer(this.base);return res._reporterState=this._reporterState,res.offset=this.offset,res.length=this.offset+bytes,this.offset+=bytes,res},DecoderBuffer.prototype.raw=function(save){return this.base.slice(save?save.offset:this.offset,this.length)},exports.EncoderBuffer=EncoderBuffer,EncoderBuffer.isEncoderBuffer=function(data){if(data instanceof EncoderBuffer)return!0;const isCompatible="object"==typeof data&&"EncoderBuffer"===data.constructor.name&&"number"==typeof data.length&&"function"==typeof data.join;return isCompatible},EncoderBuffer.prototype.join=function(out,offset){return(out||(out=Buffer.alloc(this.length)),offset||(offset=0),0===this.length)?out:(Array.isArray(this.value)?this.value.forEach(function(item){item.join(out,offset),offset+=item.length}):("number"==typeof this.value?out[offset]=this.value:"string"==typeof this.value?out.write(this.value,offset):Buffer.isBuffer(this.value)&&this.value.copy(out,offset),offset+=this.length),out)}},{"../base/reporter":13,inherits:159,"safer-buffer":248}],11:[function(require,module,exports){"use strict";const base=exports;base.Reporter=require("./reporter").Reporter,base.DecoderBuffer=require("./buffer").DecoderBuffer,base.EncoderBuffer=require("./buffer").EncoderBuffer,base.Node=require("./node")},{"./buffer":10,"./node":12,"./reporter":13}],12:[function(require,module){"use strict";function Node(enc,parent,name){const state={};this._baseState=state,state.name=name,state.enc=enc,state.parent=parent||null,state.children=null,state.tag=null,state.args=null,state.reverseArgs=null,state.choice=null,state.optional=!1,state.any=!1,state.obj=!1,state.use=null,state.useDecoder=null,state.key=null,state["default"]=null,state.explicit=null,state.implicit=null,state.contains=null,state.parent||(state.children=[],this._wrap())}const Reporter=require("../base/reporter").Reporter,EncoderBuffer=require("../base/buffer").EncoderBuffer,DecoderBuffer=require("../base/buffer").DecoderBuffer,assert=require("minimalistic-assert"),tags=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],methods=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(tags);module.exports=Node;const stateProps=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];Node.prototype.clone=function(){const state=this._baseState,cstate={};stateProps.forEach(function(prop){cstate[prop]=state[prop]});const res=new this.constructor(cstate.parent);return res._baseState=cstate,res},Node.prototype._wrap=function(){const state=this._baseState;methods.forEach(function(method){this[method]=function(){const clone=new this.constructor(this);return state.children.push(clone),clone[method].apply(clone,arguments)}},this)},Node.prototype._init=function(body){const state=this._baseState;assert(null===state.parent),body.call(this),state.children=state.children.filter(function(child){return child._baseState.parent===this},this),assert.equal(state.children.length,1,"Root node can have only one child")},Node.prototype._useArgs=function(args){const state=this._baseState,children=args.filter(function(arg){return arg instanceof this.constructor},this);args=args.filter(function(arg){return!(arg instanceof this.constructor)},this),0!==children.length&&(assert(null===state.children),state.children=children,children.forEach(function(child){child._baseState.parent=this},this)),0!==args.length&&(assert(null===state.args),state.args=args,state.reverseArgs=args.map(function(arg){if("object"!=typeof arg||arg.constructor!==Object)return arg;const res={};return Object.keys(arg).forEach(function(key){key==(0|key)&&(key|=0);const value=arg[key];res[value]=key}),res}))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach(function(method){Node.prototype[method]=function(){const state=this._baseState;throw new Error(method+" not implemented for encoding: "+state.enc)}}),tags.forEach(function(tag){Node.prototype[tag]=function(){const state=this._baseState,args=Array.prototype.slice.call(arguments);return assert(null===state.tag),state.tag=tag,this._useArgs(args),this}}),Node.prototype.use=function(item){assert(item);const state=this._baseState;return assert(null===state.use),state.use=item,this},Node.prototype.optional=function(){const state=this._baseState;return state.optional=!0,this},Node.prototype.def=function(val){const state=this._baseState;return assert(null===state["default"]),state["default"]=val,state.optional=!0,this},Node.prototype.explicit=function(num){const state=this._baseState;return assert(null===state.explicit&&null===state.implicit),state.explicit=num,this},Node.prototype.implicit=function(num){const state=this._baseState;return assert(null===state.explicit&&null===state.implicit),state.implicit=num,this},Node.prototype.obj=function(){const state=this._baseState,args=Array.prototype.slice.call(arguments);return state.obj=!0,0!==args.length&&this._useArgs(args),this},Node.prototype.key=function(newKey){const state=this._baseState;return assert(null===state.key),state.key=newKey,this},Node.prototype.any=function(){const state=this._baseState;return state.any=!0,this},Node.prototype.choice=function(obj){const state=this._baseState;return assert(null===state.choice),state.choice=obj,this._useArgs(Object.keys(obj).map(function(key){return obj[key]})),this},Node.prototype.contains=function(item){const state=this._baseState;return assert(null===state.use),state.contains=item,this},Node.prototype._decode=function(input,options){const state=this._baseState;if(null===state.parent)return input.wrapResult(state.children[0]._decode(input,options));let result=state["default"],present=!0,prevKey=null;if(null!==state.key&&(prevKey=input.enterKey(state.key)),state.optional){let tag=null;if(null===state.explicit?null===state.implicit?null!==state.tag&&(tag=state.tag):tag=state.implicit:tag=state.explicit,null===tag&&!state.any){const save=input.save();try{null===state.choice?this._decodeGeneric(state.tag,input,options):this._decodeChoice(input,options),present=!0}catch(e){present=!1}input.restore(save)}else if(present=this._peekTag(input,tag,state.any),input.isError(present))return present}let prevObj;if(state.obj&&present&&(prevObj=input.enterObject()),present){if(null!==state.explicit){const explicit=this._decodeTag(input,state.explicit);if(input.isError(explicit))return explicit;input=explicit}const start=input.offset;if(null===state.use&&null===state.choice){let save;state.any&&(save=input.save());const body=this._decodeTag(input,null===state.implicit?state.tag:state.implicit,state.any);if(input.isError(body))return body;state.any?result=input.raw(save):input=body}if(options&&options.track&&null!==state.tag&&options.track(input.path(),start,input.length,"tagged"),options&&options.track&&null!==state.tag&&options.track(input.path(),input.offset,input.length,"content"),state.any||(null===state.choice?result=this._decodeGeneric(state.tag,input,options):result=this._decodeChoice(input,options)),input.isError(result))return result;if(state.any||null!==state.choice||null===state.children||state.children.forEach(function(child){child._decode(input,options)}),state.contains&&("octstr"===state.tag||"bitstr"===state.tag)){const data=new DecoderBuffer(result);result=this._getUse(state.contains,input._reporterState.obj)._decode(data,options)}}return state.obj&&present&&(result=input.leaveObject(prevObj)),null!==state.key&&(null!==result||!0===present)?input.leaveKey(prevKey,state.key,result):null!==prevKey&&input.exitKey(prevKey),result},Node.prototype._decodeGeneric=function(tag,input,options){const state=this._baseState;if("seq"===tag||"set"===tag)return null;return"seqof"===tag||"setof"===tag?this._decodeList(input,tag,state.args[0],options):/str$/.test(tag)?this._decodeStr(input,tag,options):"objid"===tag&&state.args?this._decodeObjid(input,state.args[0],state.args[1],options):"objid"===tag?this._decodeObjid(input,null,null,options):"gentime"===tag||"utctime"===tag?this._decodeTime(input,tag,options):"null_"===tag?this._decodeNull(input,options):"bool"===tag?this._decodeBool(input,options):"objDesc"===tag?this._decodeStr(input,tag,options):"int"===tag||"enum"===tag?this._decodeInt(input,state.args&&state.args[0],options):null===state.use?input.error("unknown tag: "+tag):this._getUse(state.use,input._reporterState.obj)._decode(input,options)},Node.prototype._getUse=function(entity,obj){const state=this._baseState;return state.useDecoder=this._use(entity,obj),assert(null===state.useDecoder._baseState.parent),state.useDecoder=state.useDecoder._baseState.children[0],state.implicit!==state.useDecoder._baseState.implicit&&(state.useDecoder=state.useDecoder.clone(),state.useDecoder._baseState.implicit=state.implicit),state.useDecoder},Node.prototype._decodeChoice=function(input,options){const state=this._baseState;let result=null,match=!1;return Object.keys(state.choice).some(function(key){const save=input.save(),node=state.choice[key];try{const value=node._decode(input,options);if(input.isError(value))return!1;result={type:key,value:value},match=!0}catch(e){return input.restore(save),!1}return!0},this),match?result:input.error("Choice not matched")},Node.prototype._createEncoderBuffer=function(data){return new EncoderBuffer(data,this.reporter)},Node.prototype._encode=function(data,reporter,parent){const state=this._baseState;if(null===state["default"]||state["default"]!==data){const result=this._encodeValue(data,reporter,parent);return void 0===result||this._skipDefault(result,reporter,parent)?void 0:result}},Node.prototype._encodeValue=function(data,reporter,parent){const state=this._baseState;if(null===state.parent)return state.children[0]._encode(data,reporter||new Reporter);let result=null;if(this.reporter=reporter,state.optional&&void 0===data)if(null!==state["default"])data=state["default"];else return;let content=null,primitive=!1;if(state.any)result=this._createEncoderBuffer(data);else if(state.choice)result=this._encodeChoice(data,reporter);else if(state.contains)content=this._getUse(state.contains,parent)._encode(data,reporter),primitive=!0;else if(state.children)content=state.children.map(function(child){if("null_"===child._baseState.tag)return child._encode(null,reporter,data);if(null===child._baseState.key)return reporter.error("Child should have a key");const prevKey=reporter.enterKey(child._baseState.key);if("object"!=typeof data)return reporter.error("Child expected, but input is not object");const res=child._encode(data[child._baseState.key],reporter,data);return reporter.leaveKey(prevKey),res},this).filter(function(child){return child}),content=this._createEncoderBuffer(content);else if("seqof"===state.tag||"setof"===state.tag){if(!(state.args&&1===state.args.length))return reporter.error("Too many args for : "+state.tag);if(!Array.isArray(data))return reporter.error("seqof/setof, but data is not Array");const child=this.clone();child._baseState.implicit=null,content=this._createEncoderBuffer(data.map(function(item){const state=this._baseState;return this._getUse(state.args[0],data)._encode(item,reporter)},child))}else null===state.use?(content=this._encodePrimitive(state.tag,data),primitive=!0):result=this._getUse(state.use,parent)._encode(data,reporter);if(!state.any&&null===state.choice){const tag=null===state.implicit?state.tag:state.implicit,cls=null===state.implicit?"universal":"context";null===tag?null===state.use&&reporter.error("Tag could be omitted only for .use()"):null===state.use&&(result=this._encodeComposite(tag,primitive,cls,content))}return null!==state.explicit&&(result=this._encodeComposite(state.explicit,!1,"context",result)),result},Node.prototype._encodeChoice=function(data,reporter){const state=this._baseState,node=state.choice[data.type];return node||assert(!1,data.type+" not found in "+JSON.stringify(Object.keys(state.choice))),node._encode(data.value,reporter)},Node.prototype._encodePrimitive=function(tag,data){const state=this._baseState;if(/str$/.test(tag))return this._encodeStr(data,tag);if("objid"===tag&&state.args)return this._encodeObjid(data,state.reverseArgs[0],state.args[1]);if("objid"===tag)return this._encodeObjid(data,null,null);if("gentime"===tag||"utctime"===tag)return this._encodeTime(data,tag);if("null_"===tag)return this._encodeNull();if("int"===tag||"enum"===tag)return this._encodeInt(data,state.args&&state.reverseArgs[0]);if("bool"===tag)return this._encodeBool(data);if("objDesc"===tag)return this._encodeStr(data,tag);throw new Error("Unsupported tag: "+tag)},Node.prototype._isNumstr=function(str){return /^[0-9 ]*$/.test(str)},Node.prototype._isPrintstr=function(str){return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str)}},{"../base/buffer":10,"../base/reporter":13,"minimalistic-assert":180}],13:[function(require,module,exports){"use strict";function Reporter(options){this._reporterState={obj:null,path:[],options:options||{},errors:[]}}function ReporterError(path,msg){this.path=path,this.rethrow(msg)}const inherits=require("inherits");exports.Reporter=Reporter,Reporter.prototype.isError=function(obj){return obj instanceof ReporterError},Reporter.prototype.save=function(){const state=this._reporterState;return{obj:state.obj,pathLen:state.path.length}},Reporter.prototype.restore=function(data){const state=this._reporterState;state.obj=data.obj,state.path=state.path.slice(0,data.pathLen)},Reporter.prototype.enterKey=function(key){return this._reporterState.path.push(key)},Reporter.prototype.exitKey=function(index){const state=this._reporterState;state.path=state.path.slice(0,index-1)},Reporter.prototype.leaveKey=function(index,key,value){const state=this._reporterState;this.exitKey(index),null!==state.obj&&(state.obj[key]=value)},Reporter.prototype.path=function(){return this._reporterState.path.join("/")},Reporter.prototype.enterObject=function(){const state=this._reporterState,prev=state.obj;return state.obj={},prev},Reporter.prototype.leaveObject=function(prev){const state=this._reporterState,now=state.obj;return state.obj=prev,now},Reporter.prototype.error=function(msg){let err;const state=this._reporterState,inherited=msg instanceof ReporterError;if(err=inherited?msg:new ReporterError(state.path.map(function(elem){return"["+JSON.stringify(elem)+"]"}).join(""),msg.message||msg,msg.stack),!state.options.partial)throw err;return inherited||state.errors.push(err),err},Reporter.prototype.wrapResult=function(result){const state=this._reporterState;return state.options.partial?{result:this.isError(result)?null:result,errors:state.errors}:result},inherits(ReporterError,Error),ReporterError.prototype.rethrow=function(msg){if(this.message=msg+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,ReporterError),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},{inherits:159}],14:[function(require,module,exports){"use strict";function reverse(map){const res={};return Object.keys(map).forEach(function(key){(0|key)==key&&(key|=0);const value=map[key];res[value]=key}),res}exports.tagClass={0:"universal",1:"application",2:"context",3:"private"},exports.tagClassByName=reverse(exports.tagClass),exports.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},exports.tagByName=reverse(exports.tag)},{}],15:[function(require,module,exports){"use strict";const constants=exports;constants._reverse=function(map){const res={};return Object.keys(map).forEach(function(key){(0|key)==key&&(key|=0);const value=map[key];res[value]=key}),res},constants.der=require("./der")},{"./der":14}],16:[function(require,module){"use strict";function DERDecoder(entity){this.enc="der",this.name=entity.name,this.entity=entity,this.tree=new DERNode,this.tree._init(entity.body)}function DERNode(parent){Node.call(this,"der",parent)}function derDecodeTag(buf,fail){let tag=buf.readUInt8(fail);if(buf.isError(tag))return tag;const cls=der.tagClass[tag>>6],primitive=0==(32&tag);if(31==(31&tag)){let oct=tag;for(tag=0;128==(128&oct);){if(oct=buf.readUInt8(fail),buf.isError(oct))return oct;tag<<=7,tag|=127&oct}}else tag&=31;const tagStr=der.tag[tag];return{cls:cls,primitive:primitive,tag:tag,tagStr:tagStr}}function derDecodeLen(buf,primitive,fail){let len=buf.readUInt8(fail);if(buf.isError(len))return len;if(!primitive&&128===len)return null;if(0==(128&len))return len;const num=127&len;if(4year?2e3+year:1900+year;else return buffer.error("Decoding "+tag+" time is not supported yet");return Date.UTC(year,mon-1,day,hour,min,sec,0)},DERNode.prototype._decodeNull=function(){return null},DERNode.prototype._decodeBool=function(buffer){const res=buffer.readUInt8();return buffer.isError(res)?res:0!==res},DERNode.prototype._decodeInt=function(buffer,values){const raw=buffer.raw();let res=new bignum(raw);return values&&(res=values[res.toString(10)]||res),res},DERNode.prototype._use=function(entity,obj){return"function"==typeof entity&&(entity=entity(obj)),entity._getDecoder("der").tree}},{"../base/buffer":10,"../base/node":12,"../constants/der":14,"bn.js":22,inherits:159}],17:[function(require,module,exports){"use strict";const decoders=exports;decoders.der=require("./der"),decoders.pem=require("./pem")},{"./der":16,"./pem":18}],18:[function(require,module){"use strict";function PEMDecoder(entity){DERDecoder.call(this,entity),this.enc="pem"}const inherits=require("inherits"),Buffer=require("safer-buffer").Buffer,DERDecoder=require("./der");inherits(PEMDecoder,DERDecoder),module.exports=PEMDecoder,PEMDecoder.prototype.decode=function(data,options){const lines=data.toString().split(/[\r\n]+/g),label=options.label.toUpperCase();let start=-1,end=-1;for(let i=0;inum?"0"+num:num}function encodeTag(tag,primitive,cls,reporter){let res;if("seqof"===tag?tag="seq":"setof"==tag&&(tag="set"),der.tagByName.hasOwnProperty(tag))res=der.tagByName[tag];else if("number"==typeof tag&&(0|tag)===tag)res=tag;else return reporter.error("Unknown tag: "+tag);return 31<=res?reporter.error("Multi-octet tag encoding unsupported"):(primitive||(res|=32),res|=der.tagClassByName[cls||"universal"]<<6,res)}const inherits=require("inherits"),Buffer=require("safer-buffer").Buffer,Node=require("../base/node"),der=require("../constants/der");module.exports=DEREncoder,DEREncoder.prototype.encode=function(data,reporter){return this.tree._encode(data,reporter).join()},inherits(DERNode,Node),DERNode.prototype._encodeComposite=function(tag,primitive,cls,content){const encodedTag=encodeTag(tag,primitive,cls,this.reporter);if(128>content.length){const header=Buffer.alloc(2);return header[0]=encodedTag,header[1]=content.length,this._createEncoderBuffer([header,content])}let lenOctets=1;for(let i=content.length;256<=i;i>>=8)lenOctets++;const header=Buffer.alloc(2+lenOctets);header[0]=encodedTag,header[1]=128|lenOctets;for(let i=1+lenOctets,j=content.length;0>=8)header[i]=255&j;return this._createEncoderBuffer([header,content])},DERNode.prototype._encodeStr=function(str,tag){if("bitstr"===tag)return this._createEncoderBuffer([0|str.unused,str.data]);if("bmpstr"===tag){const buf=Buffer.alloc(2*str.length);for(let i=0;i>=7)size++;const objid=Buffer.alloc(size);let offset=objid.length-1;for(let i=id.length-1,ident;0<=i;i--)for(ident=id[i],objid[offset--]=127&ident;0<(ident>>=7);)objid[offset--]=128|127&ident;return this._createEncoderBuffer(objid)},DERNode.prototype._encodeTime=function(time,tag){let str;const date=new Date(time);return"gentime"===tag?str=[two(date.getUTCFullYear()),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join(""):"utctime"===tag?str=[two(date.getUTCFullYear()%100),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+tag+" time is not supported yet"),this._encodeStr(str,"octstr")},DERNode.prototype._encodeNull=function(){return this._createEncoderBuffer("")},DERNode.prototype._encodeInt=function(num,values){if("string"==typeof num){if(!values)return this.reporter.error("String int or enum given, but no values map");if(!values.hasOwnProperty(num))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(num));num=values[num]}if("number"!=typeof num&&!Buffer.isBuffer(num)){const numArray=num.toArray();!num.sign&&128&numArray[0]&&numArray.unshift(0),num=Buffer.from(numArray)}if(Buffer.isBuffer(num)){let size=num.length;0===num.length&&size++;const out=Buffer.alloc(size);return num.copy(out),0===num.length&&(out[0]=0),this._createEncoderBuffer(out)}if(128>num)return this._createEncoderBuffer(num);if(256>num)return this._createEncoderBuffer([0,num]);let size=1;for(let i=num;256<=i;i>>=8)size++;const out=Array(size);for(let i=out.length-1;0<=i;i--)out[i]=255&num,num>>=8;return 128&out[0]&&out.unshift(0),this._createEncoderBuffer(Buffer.from(out))},DERNode.prototype._encodeBool=function(value){return this._createEncoderBuffer(value?255:0)},DERNode.prototype._use=function(entity,obj){return"function"==typeof entity&&(entity=entity(obj)),entity._getEncoder("der").tree},DERNode.prototype._skipDefault=function(dataBuffer,reporter,parent){const state=this._baseState;let i;if(null===state["default"])return!1;const data=dataBuffer.join();if(void 0===state.defaultBuffer&&(state.defaultBuffer=this._encodeValue(state["default"],reporter,parent).join()),data.length!==state.defaultBuffer.length)return!1;for(i=0;i=c?c-55:97<=c&&102>=c?c-87:15&c-48}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);return index-1>=lowerBound&&(r|=parseHex4Bits(string,index-1)<<4),r}function parseBase(str,start,end,mul){for(var r=0,len=_Mathmin(str.length,end),i=start,c;i>>wbit}return w}function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=0|self.length+num.length;out.length=len,len=0|len-1;var a=0|self.words[0],b=0|num.words[0],r=a*b,lo=67108863&r,carry=0|r/67108864;out.words[0]=lo;for(var k=1;k>>26,rword=67108863&carry,maxJ=_Mathmin(k,num.length-1),j=_Mathmax(0,k-self.length+1),i;j<=maxJ;j++)i=0|k-j,a=0|self.words[i],b=0|num.words[j],r=a*b+rword,ncarry+=0|r/67108864,rword=67108863&r;out.words[k]=0|rword,carry=0|ncarry}return 0===carry?out.length--:out.words[k]=0|carry,out.strip()}function bigMulTo(self,num,out){out.negative=num.negative^self.negative,out.length=self.length+num.length;for(var carry=0,hncarry=0,k=0,ncarry;k>>26),hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}return 0===carry?out.length--:out.words[k]=carry,out.strip()}function jumboMulTo(self,num,out){var fftm=new FFTM;return fftm.mulp(self,num,out)}function FFTM(x,y){this.x=x,this.y=y}function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(m){if("string"==typeof m){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),"modulus must be greater than 1"),this.m=m,this.prime=null}function Mont(m){Red.call(this,m),this.shift=this.m.bitLength(),0!=this.shift%26&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}"object"==typeof module?module.exports=BN:exports.BN=BN,BN.BN=BN,BN.wordSize=26;var Buffer;try{Buffer="undefined"!=typeof window&&"undefined"!=typeof window.Buffer?window.Buffer:require("buffer").Buffer}catch(e){}BN.isBN=function(num){return!!(num instanceof BN)||null!==num&&"object"==typeof num&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){return 0left.cmp(right)?left:right},BN.prototype._init=function(number,base,endian){if("number"==typeof number)return this._initNumber(number,base,endian);if("object"==typeof number)return this._initArray(number,base,endian);"hex"===base&&(base=16),assert(base===(0|base)&&2<=base&&36>=base),number=number.toString().replace(/\s+/g,"");var start=0;"-"===number[0]&&(start++,this.negative=1),startnumber&&(this.negative=1,number=-number),67108864>number?(this.words=[67108863&number],this.length=1):4503599627370496>number?(this.words=[67108863&number,67108863&number/67108864],this.length=2):(assert(9007199254740992>number),this.words=[67108863&number,67108863&number/67108864,1],this.length=3);"le"!==endian||this._initArray(this.toArray(),base,endian)},BN.prototype._initArray=function(number,base,endian){if(assert("number"==typeof number.length),0>=number.length)return this.words=[0],this.length=1,this;this.length=_Mathceil(number.length/3),this.words=Array(this.length);for(var i=0;i>>26-off,off+=24,26<=off&&(off-=26,j++);else if("le"===endian)for(i=0,j=0;i>>26-off,off+=24,26<=off&&(off-=26,j++);return this.strip()},BN.prototype._parseHex=function(number,start,endian){this.length=_Mathceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)w=parseHexByte(number,start,i)<>>26):off+=8;else{var parseLength=number.length-start;for(i=0==parseLength%2?start+1:start;i>>26):off+=8}this.strip()},BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;67108863>=limbPow;limbPow*=base)limbLen++;limbLen--,limbPow=0|limbPow/base;for(var total=number.length-start,mod=total%limbLen,end=_Mathmin(total,total-mod)+start,word=0,i=start;ithis.words[0]+word?this.words[0]+=word:this._iaddn(word);if(0!==mod){var pow=1;for(word=parseBase(number,i,number.length,base),i=0;ithis.words[0]+word?this.words[0]+=word:this._iaddn(word)}this.strip()},BN.prototype.copy=function(dest){dest.words=Array(this.length);for(var i=0;i"};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function(base,padding){base=base||10,padding=0|padding||1;var out;if(16===base||"hex"===base){out="";for(var off=0,carry=0,i=0;i>>24-off,out=0!==carry||i!==this.length-1?zeros[6-word.length]+word+out:word+out,off+=2,26<=off&&(off-=26,i--)}for(0!==carry&&(out=carry.toString(16)+out);0!=out.length%padding;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}if(base===(0|base)&&2<=base&&36>=base){var groupSize=groupSizes[base],groupBase=groupBases[base];out="";var c=this.clone();for(c.negative=0;!c.isZero();){var r=c.modn(groupBase).toString(base);c=c.idivn(groupBase),out=c.isZero()?r+out:zeros[groupSize-r.length]+r+out}for(this.isZero()&&(out="0"+out);0!=out.length%padding;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function(){var ret=this.words[0];return 2===this.length?ret+=67108864*this.words[1]:3===this.length&&1===this.words[2]?ret+=4503599627370496+67108864*this.words[1]:2>>=13),64<=t&&(r+=7,t>>>=7),8<=t&&(r+=4,t>>>=4),2<=t&&(r+=2,t>>>=2),r+t},BN.prototype._zeroBits=function(w){if(0===w)return 26;var t=w,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return 26*(this.length-1)+hi},BN.prototype.zeroBits=function(){if(this.isZero())return 0;for(var r=0,i=0,b;inum.length?this.clone().ior(num):num.clone().ior(this)},BN.prototype.uor=function(num){return this.length>num.length?this.clone().iuor(num):num.clone().iuor(this)},BN.prototype.iuand=function(num){var b=this.length>num.length?num:this;for(var i=0;inum.length?this.clone().iand(num):num.clone().iand(this)},BN.prototype.uand=function(num){return this.length>num.length?this.clone().iuand(num):num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;this.length>num.length?(a=this,b=num):(a=num,b=this);for(var i=0;inum.length?this.clone().ixor(num):num.clone().ixor(this)},BN.prototype.uxor=function(num){return this.length>num.length?this.clone().iuxor(num):num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert("number"==typeof width&&0<=width);var bytesNeeded=0|_Mathceil(width/26),bitsLeft=width%26;this._expand(bytesNeeded),0>26-bitsLeft),this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert("number"==typeof bit&&0<=bit);var off=0|bit/26,wbit=bit%26;return this._expand(off+1),val?this.words[off]|=1<num.length?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>>26;for(;0!==carry&&i>>26;if(this.length=a.length,0!==carry)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length?this.clone().iadd(num):num.clone().iadd(this)},BN.prototype.isub=function(num){if(0!==num.negative){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(0===cmp)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;0>26,this.words[i]=67108863&r;for(;0!==carry&&i>26,this.words[i]=67108863&r;if(0===carry&&i>>13,a1=0|a[1],al1=8191&a1,ah1=a1>>>13,a2=0|a[2],al2=8191&a2,ah2=a2>>>13,a3=0|a[3],al3=8191&a3,ah3=a3>>>13,a4=0|a[4],al4=8191&a4,ah4=a4>>>13,a5=0|a[5],al5=8191&a5,ah5=a5>>>13,a6=0|a[6],al6=8191&a6,ah6=a6>>>13,a7=0|a[7],al7=8191&a7,ah7=a7>>>13,a8=0|a[8],al8=8191&a8,ah8=a8>>>13,a9=0|a[9],al9=8191&a9,ah9=a9>>>13,b0=0|b[0],bl0=8191&b0,bh0=b0>>>13,b1=0|b[1],bl1=8191&b1,bh1=b1>>>13,b2=0|b[2],bl2=8191&b2,bh2=b2>>>13,b3=0|b[3],bl3=8191&b3,bh3=b3>>>13,b4=0|b[4],bl4=8191&b4,bh4=b4>>>13,b5=0|b[5],bl5=8191&b5,bh5=b5>>>13,b6=0|b[6],bl6=8191&b6,bh6=b6>>>13,b7=0|b[7],bl7=8191&b7,bh7=b7>>>13,b8=0|b[8],bl8=8191&b8,bh8=b8>>>13,b9=0|b[9],bl9=8191&b9,bh9=b9>>>13,lo,mid,hi;out.negative=self.negative^num.negative,out.length=19,lo=_Mathimul(al0,bl0),mid=_Mathimul(al0,bh0),mid=0|mid+_Mathimul(ah0,bl0),hi=_Mathimul(ah0,bh0);var w0=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w0>>>26),w0&=67108863,lo=_Mathimul(al1,bl0),mid=_Mathimul(al1,bh0),mid=0|mid+_Mathimul(ah1,bl0),hi=_Mathimul(ah1,bh0),lo=0|lo+_Mathimul(al0,bl1),mid=0|mid+_Mathimul(al0,bh1),mid=0|mid+_Mathimul(ah0,bl1),hi=0|hi+_Mathimul(ah0,bh1);var w1=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w1>>>26),w1&=67108863,lo=_Mathimul(al2,bl0),mid=_Mathimul(al2,bh0),mid=0|mid+_Mathimul(ah2,bl0),hi=_Mathimul(ah2,bh0),lo=0|lo+_Mathimul(al1,bl1),mid=0|mid+_Mathimul(al1,bh1),mid=0|mid+_Mathimul(ah1,bl1),hi=0|hi+_Mathimul(ah1,bh1),lo=0|lo+_Mathimul(al0,bl2),mid=0|mid+_Mathimul(al0,bh2),mid=0|mid+_Mathimul(ah0,bl2),hi=0|hi+_Mathimul(ah0,bh2);var w2=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w2>>>26),w2&=67108863,lo=_Mathimul(al3,bl0),mid=_Mathimul(al3,bh0),mid=0|mid+_Mathimul(ah3,bl0),hi=_Mathimul(ah3,bh0),lo=0|lo+_Mathimul(al2,bl1),mid=0|mid+_Mathimul(al2,bh1),mid=0|mid+_Mathimul(ah2,bl1),hi=0|hi+_Mathimul(ah2,bh1),lo=0|lo+_Mathimul(al1,bl2),mid=0|mid+_Mathimul(al1,bh2),mid=0|mid+_Mathimul(ah1,bl2),hi=0|hi+_Mathimul(ah1,bh2),lo=0|lo+_Mathimul(al0,bl3),mid=0|mid+_Mathimul(al0,bh3),mid=0|mid+_Mathimul(ah0,bl3),hi=0|hi+_Mathimul(ah0,bh3);var w3=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w3>>>26),w3&=67108863,lo=_Mathimul(al4,bl0),mid=_Mathimul(al4,bh0),mid=0|mid+_Mathimul(ah4,bl0),hi=_Mathimul(ah4,bh0),lo=0|lo+_Mathimul(al3,bl1),mid=0|mid+_Mathimul(al3,bh1),mid=0|mid+_Mathimul(ah3,bl1),hi=0|hi+_Mathimul(ah3,bh1),lo=0|lo+_Mathimul(al2,bl2),mid=0|mid+_Mathimul(al2,bh2),mid=0|mid+_Mathimul(ah2,bl2),hi=0|hi+_Mathimul(ah2,bh2),lo=0|lo+_Mathimul(al1,bl3),mid=0|mid+_Mathimul(al1,bh3),mid=0|mid+_Mathimul(ah1,bl3),hi=0|hi+_Mathimul(ah1,bh3),lo=0|lo+_Mathimul(al0,bl4),mid=0|mid+_Mathimul(al0,bh4),mid=0|mid+_Mathimul(ah0,bl4),hi=0|hi+_Mathimul(ah0,bh4);var w4=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w4>>>26),w4&=67108863,lo=_Mathimul(al5,bl0),mid=_Mathimul(al5,bh0),mid=0|mid+_Mathimul(ah5,bl0),hi=_Mathimul(ah5,bh0),lo=0|lo+_Mathimul(al4,bl1),mid=0|mid+_Mathimul(al4,bh1),mid=0|mid+_Mathimul(ah4,bl1),hi=0|hi+_Mathimul(ah4,bh1),lo=0|lo+_Mathimul(al3,bl2),mid=0|mid+_Mathimul(al3,bh2),mid=0|mid+_Mathimul(ah3,bl2),hi=0|hi+_Mathimul(ah3,bh2),lo=0|lo+_Mathimul(al2,bl3),mid=0|mid+_Mathimul(al2,bh3),mid=0|mid+_Mathimul(ah2,bl3),hi=0|hi+_Mathimul(ah2,bh3),lo=0|lo+_Mathimul(al1,bl4),mid=0|mid+_Mathimul(al1,bh4),mid=0|mid+_Mathimul(ah1,bl4),hi=0|hi+_Mathimul(ah1,bh4),lo=0|lo+_Mathimul(al0,bl5),mid=0|mid+_Mathimul(al0,bh5),mid=0|mid+_Mathimul(ah0,bl5),hi=0|hi+_Mathimul(ah0,bh5);var w5=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w5>>>26),w5&=67108863,lo=_Mathimul(al6,bl0),mid=_Mathimul(al6,bh0),mid=0|mid+_Mathimul(ah6,bl0),hi=_Mathimul(ah6,bh0),lo=0|lo+_Mathimul(al5,bl1),mid=0|mid+_Mathimul(al5,bh1),mid=0|mid+_Mathimul(ah5,bl1),hi=0|hi+_Mathimul(ah5,bh1),lo=0|lo+_Mathimul(al4,bl2),mid=0|mid+_Mathimul(al4,bh2),mid=0|mid+_Mathimul(ah4,bl2),hi=0|hi+_Mathimul(ah4,bh2),lo=0|lo+_Mathimul(al3,bl3),mid=0|mid+_Mathimul(al3,bh3),mid=0|mid+_Mathimul(ah3,bl3),hi=0|hi+_Mathimul(ah3,bh3),lo=0|lo+_Mathimul(al2,bl4),mid=0|mid+_Mathimul(al2,bh4),mid=0|mid+_Mathimul(ah2,bl4),hi=0|hi+_Mathimul(ah2,bh4),lo=0|lo+_Mathimul(al1,bl5),mid=0|mid+_Mathimul(al1,bh5),mid=0|mid+_Mathimul(ah1,bl5),hi=0|hi+_Mathimul(ah1,bh5),lo=0|lo+_Mathimul(al0,bl6),mid=0|mid+_Mathimul(al0,bh6),mid=0|mid+_Mathimul(ah0,bl6),hi=0|hi+_Mathimul(ah0,bh6);var w6=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w6>>>26),w6&=67108863,lo=_Mathimul(al7,bl0),mid=_Mathimul(al7,bh0),mid=0|mid+_Mathimul(ah7,bl0),hi=_Mathimul(ah7,bh0),lo=0|lo+_Mathimul(al6,bl1),mid=0|mid+_Mathimul(al6,bh1),mid=0|mid+_Mathimul(ah6,bl1),hi=0|hi+_Mathimul(ah6,bh1),lo=0|lo+_Mathimul(al5,bl2),mid=0|mid+_Mathimul(al5,bh2),mid=0|mid+_Mathimul(ah5,bl2),hi=0|hi+_Mathimul(ah5,bh2),lo=0|lo+_Mathimul(al4,bl3),mid=0|mid+_Mathimul(al4,bh3),mid=0|mid+_Mathimul(ah4,bl3),hi=0|hi+_Mathimul(ah4,bh3),lo=0|lo+_Mathimul(al3,bl4),mid=0|mid+_Mathimul(al3,bh4),mid=0|mid+_Mathimul(ah3,bl4),hi=0|hi+_Mathimul(ah3,bh4),lo=0|lo+_Mathimul(al2,bl5),mid=0|mid+_Mathimul(al2,bh5),mid=0|mid+_Mathimul(ah2,bl5),hi=0|hi+_Mathimul(ah2,bh5),lo=0|lo+_Mathimul(al1,bl6),mid=0|mid+_Mathimul(al1,bh6),mid=0|mid+_Mathimul(ah1,bl6),hi=0|hi+_Mathimul(ah1,bh6),lo=0|lo+_Mathimul(al0,bl7),mid=0|mid+_Mathimul(al0,bh7),mid=0|mid+_Mathimul(ah0,bl7),hi=0|hi+_Mathimul(ah0,bh7);var w7=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w7>>>26),w7&=67108863,lo=_Mathimul(al8,bl0),mid=_Mathimul(al8,bh0),mid=0|mid+_Mathimul(ah8,bl0),hi=_Mathimul(ah8,bh0),lo=0|lo+_Mathimul(al7,bl1),mid=0|mid+_Mathimul(al7,bh1),mid=0|mid+_Mathimul(ah7,bl1),hi=0|hi+_Mathimul(ah7,bh1),lo=0|lo+_Mathimul(al6,bl2),mid=0|mid+_Mathimul(al6,bh2),mid=0|mid+_Mathimul(ah6,bl2),hi=0|hi+_Mathimul(ah6,bh2),lo=0|lo+_Mathimul(al5,bl3),mid=0|mid+_Mathimul(al5,bh3),mid=0|mid+_Mathimul(ah5,bl3),hi=0|hi+_Mathimul(ah5,bh3),lo=0|lo+_Mathimul(al4,bl4),mid=0|mid+_Mathimul(al4,bh4),mid=0|mid+_Mathimul(ah4,bl4),hi=0|hi+_Mathimul(ah4,bh4),lo=0|lo+_Mathimul(al3,bl5),mid=0|mid+_Mathimul(al3,bh5),mid=0|mid+_Mathimul(ah3,bl5),hi=0|hi+_Mathimul(ah3,bh5),lo=0|lo+_Mathimul(al2,bl6),mid=0|mid+_Mathimul(al2,bh6),mid=0|mid+_Mathimul(ah2,bl6),hi=0|hi+_Mathimul(ah2,bh6),lo=0|lo+_Mathimul(al1,bl7),mid=0|mid+_Mathimul(al1,bh7),mid=0|mid+_Mathimul(ah1,bl7),hi=0|hi+_Mathimul(ah1,bh7),lo=0|lo+_Mathimul(al0,bl8),mid=0|mid+_Mathimul(al0,bh8),mid=0|mid+_Mathimul(ah0,bl8),hi=0|hi+_Mathimul(ah0,bh8);var w8=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w8>>>26),w8&=67108863,lo=_Mathimul(al9,bl0),mid=_Mathimul(al9,bh0),mid=0|mid+_Mathimul(ah9,bl0),hi=_Mathimul(ah9,bh0),lo=0|lo+_Mathimul(al8,bl1),mid=0|mid+_Mathimul(al8,bh1),mid=0|mid+_Mathimul(ah8,bl1),hi=0|hi+_Mathimul(ah8,bh1),lo=0|lo+_Mathimul(al7,bl2),mid=0|mid+_Mathimul(al7,bh2),mid=0|mid+_Mathimul(ah7,bl2),hi=0|hi+_Mathimul(ah7,bh2),lo=0|lo+_Mathimul(al6,bl3),mid=0|mid+_Mathimul(al6,bh3),mid=0|mid+_Mathimul(ah6,bl3),hi=0|hi+_Mathimul(ah6,bh3),lo=0|lo+_Mathimul(al5,bl4),mid=0|mid+_Mathimul(al5,bh4),mid=0|mid+_Mathimul(ah5,bl4),hi=0|hi+_Mathimul(ah5,bh4),lo=0|lo+_Mathimul(al4,bl5),mid=0|mid+_Mathimul(al4,bh5),mid=0|mid+_Mathimul(ah4,bl5),hi=0|hi+_Mathimul(ah4,bh5),lo=0|lo+_Mathimul(al3,bl6),mid=0|mid+_Mathimul(al3,bh6),mid=0|mid+_Mathimul(ah3,bl6),hi=0|hi+_Mathimul(ah3,bh6),lo=0|lo+_Mathimul(al2,bl7),mid=0|mid+_Mathimul(al2,bh7),mid=0|mid+_Mathimul(ah2,bl7),hi=0|hi+_Mathimul(ah2,bh7),lo=0|lo+_Mathimul(al1,bl8),mid=0|mid+_Mathimul(al1,bh8),mid=0|mid+_Mathimul(ah1,bl8),hi=0|hi+_Mathimul(ah1,bh8),lo=0|lo+_Mathimul(al0,bl9),mid=0|mid+_Mathimul(al0,bh9),mid=0|mid+_Mathimul(ah0,bl9),hi=0|hi+_Mathimul(ah0,bh9);var w9=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w9>>>26),w9&=67108863,lo=_Mathimul(al9,bl1),mid=_Mathimul(al9,bh1),mid=0|mid+_Mathimul(ah9,bl1),hi=_Mathimul(ah9,bh1),lo=0|lo+_Mathimul(al8,bl2),mid=0|mid+_Mathimul(al8,bh2),mid=0|mid+_Mathimul(ah8,bl2),hi=0|hi+_Mathimul(ah8,bh2),lo=0|lo+_Mathimul(al7,bl3),mid=0|mid+_Mathimul(al7,bh3),mid=0|mid+_Mathimul(ah7,bl3),hi=0|hi+_Mathimul(ah7,bh3),lo=0|lo+_Mathimul(al6,bl4),mid=0|mid+_Mathimul(al6,bh4),mid=0|mid+_Mathimul(ah6,bl4),hi=0|hi+_Mathimul(ah6,bh4),lo=0|lo+_Mathimul(al5,bl5),mid=0|mid+_Mathimul(al5,bh5),mid=0|mid+_Mathimul(ah5,bl5),hi=0|hi+_Mathimul(ah5,bh5),lo=0|lo+_Mathimul(al4,bl6),mid=0|mid+_Mathimul(al4,bh6),mid=0|mid+_Mathimul(ah4,bl6),hi=0|hi+_Mathimul(ah4,bh6),lo=0|lo+_Mathimul(al3,bl7),mid=0|mid+_Mathimul(al3,bh7),mid=0|mid+_Mathimul(ah3,bl7),hi=0|hi+_Mathimul(ah3,bh7),lo=0|lo+_Mathimul(al2,bl8),mid=0|mid+_Mathimul(al2,bh8),mid=0|mid+_Mathimul(ah2,bl8),hi=0|hi+_Mathimul(ah2,bh8),lo=0|lo+_Mathimul(al1,bl9),mid=0|mid+_Mathimul(al1,bh9),mid=0|mid+_Mathimul(ah1,bl9),hi=0|hi+_Mathimul(ah1,bh9);var w10=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w10>>>26),w10&=67108863,lo=_Mathimul(al9,bl2),mid=_Mathimul(al9,bh2),mid=0|mid+_Mathimul(ah9,bl2),hi=_Mathimul(ah9,bh2),lo=0|lo+_Mathimul(al8,bl3),mid=0|mid+_Mathimul(al8,bh3),mid=0|mid+_Mathimul(ah8,bl3),hi=0|hi+_Mathimul(ah8,bh3),lo=0|lo+_Mathimul(al7,bl4),mid=0|mid+_Mathimul(al7,bh4),mid=0|mid+_Mathimul(ah7,bl4),hi=0|hi+_Mathimul(ah7,bh4),lo=0|lo+_Mathimul(al6,bl5),mid=0|mid+_Mathimul(al6,bh5),mid=0|mid+_Mathimul(ah6,bl5),hi=0|hi+_Mathimul(ah6,bh5),lo=0|lo+_Mathimul(al5,bl6),mid=0|mid+_Mathimul(al5,bh6),mid=0|mid+_Mathimul(ah5,bl6),hi=0|hi+_Mathimul(ah5,bh6),lo=0|lo+_Mathimul(al4,bl7),mid=0|mid+_Mathimul(al4,bh7),mid=0|mid+_Mathimul(ah4,bl7),hi=0|hi+_Mathimul(ah4,bh7),lo=0|lo+_Mathimul(al3,bl8),mid=0|mid+_Mathimul(al3,bh8),mid=0|mid+_Mathimul(ah3,bl8),hi=0|hi+_Mathimul(ah3,bh8),lo=0|lo+_Mathimul(al2,bl9),mid=0|mid+_Mathimul(al2,bh9),mid=0|mid+_Mathimul(ah2,bl9),hi=0|hi+_Mathimul(ah2,bh9);var w11=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w11>>>26),w11&=67108863,lo=_Mathimul(al9,bl3),mid=_Mathimul(al9,bh3),mid=0|mid+_Mathimul(ah9,bl3),hi=_Mathimul(ah9,bh3),lo=0|lo+_Mathimul(al8,bl4),mid=0|mid+_Mathimul(al8,bh4),mid=0|mid+_Mathimul(ah8,bl4),hi=0|hi+_Mathimul(ah8,bh4),lo=0|lo+_Mathimul(al7,bl5),mid=0|mid+_Mathimul(al7,bh5),mid=0|mid+_Mathimul(ah7,bl5),hi=0|hi+_Mathimul(ah7,bh5),lo=0|lo+_Mathimul(al6,bl6),mid=0|mid+_Mathimul(al6,bh6),mid=0|mid+_Mathimul(ah6,bl6),hi=0|hi+_Mathimul(ah6,bh6),lo=0|lo+_Mathimul(al5,bl7),mid=0|mid+_Mathimul(al5,bh7),mid=0|mid+_Mathimul(ah5,bl7),hi=0|hi+_Mathimul(ah5,bh7),lo=0|lo+_Mathimul(al4,bl8),mid=0|mid+_Mathimul(al4,bh8),mid=0|mid+_Mathimul(ah4,bl8),hi=0|hi+_Mathimul(ah4,bh8),lo=0|lo+_Mathimul(al3,bl9),mid=0|mid+_Mathimul(al3,bh9),mid=0|mid+_Mathimul(ah3,bl9),hi=0|hi+_Mathimul(ah3,bh9);var w12=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w12>>>26),w12&=67108863,lo=_Mathimul(al9,bl4),mid=_Mathimul(al9,bh4),mid=0|mid+_Mathimul(ah9,bl4),hi=_Mathimul(ah9,bh4),lo=0|lo+_Mathimul(al8,bl5),mid=0|mid+_Mathimul(al8,bh5),mid=0|mid+_Mathimul(ah8,bl5),hi=0|hi+_Mathimul(ah8,bh5),lo=0|lo+_Mathimul(al7,bl6),mid=0|mid+_Mathimul(al7,bh6),mid=0|mid+_Mathimul(ah7,bl6),hi=0|hi+_Mathimul(ah7,bh6),lo=0|lo+_Mathimul(al6,bl7),mid=0|mid+_Mathimul(al6,bh7),mid=0|mid+_Mathimul(ah6,bl7),hi=0|hi+_Mathimul(ah6,bh7),lo=0|lo+_Mathimul(al5,bl8),mid=0|mid+_Mathimul(al5,bh8),mid=0|mid+_Mathimul(ah5,bl8),hi=0|hi+_Mathimul(ah5,bh8),lo=0|lo+_Mathimul(al4,bl9),mid=0|mid+_Mathimul(al4,bh9),mid=0|mid+_Mathimul(ah4,bl9),hi=0|hi+_Mathimul(ah4,bh9);var w13=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w13>>>26),w13&=67108863,lo=_Mathimul(al9,bl5),mid=_Mathimul(al9,bh5),mid=0|mid+_Mathimul(ah9,bl5),hi=_Mathimul(ah9,bh5),lo=0|lo+_Mathimul(al8,bl6),mid=0|mid+_Mathimul(al8,bh6),mid=0|mid+_Mathimul(ah8,bl6),hi=0|hi+_Mathimul(ah8,bh6),lo=0|lo+_Mathimul(al7,bl7),mid=0|mid+_Mathimul(al7,bh7),mid=0|mid+_Mathimul(ah7,bl7),hi=0|hi+_Mathimul(ah7,bh7),lo=0|lo+_Mathimul(al6,bl8),mid=0|mid+_Mathimul(al6,bh8),mid=0|mid+_Mathimul(ah6,bl8),hi=0|hi+_Mathimul(ah6,bh8),lo=0|lo+_Mathimul(al5,bl9),mid=0|mid+_Mathimul(al5,bh9),mid=0|mid+_Mathimul(ah5,bl9),hi=0|hi+_Mathimul(ah5,bh9);var w14=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w14>>>26),w14&=67108863,lo=_Mathimul(al9,bl6),mid=_Mathimul(al9,bh6),mid=0|mid+_Mathimul(ah9,bl6),hi=_Mathimul(ah9,bh6),lo=0|lo+_Mathimul(al8,bl7),mid=0|mid+_Mathimul(al8,bh7),mid=0|mid+_Mathimul(ah8,bl7),hi=0|hi+_Mathimul(ah8,bh7),lo=0|lo+_Mathimul(al7,bl8),mid=0|mid+_Mathimul(al7,bh8),mid=0|mid+_Mathimul(ah7,bl8),hi=0|hi+_Mathimul(ah7,bh8),lo=0|lo+_Mathimul(al6,bl9),mid=0|mid+_Mathimul(al6,bh9),mid=0|mid+_Mathimul(ah6,bl9),hi=0|hi+_Mathimul(ah6,bh9);var w15=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w15>>>26),w15&=67108863,lo=_Mathimul(al9,bl7),mid=_Mathimul(al9,bh7),mid=0|mid+_Mathimul(ah9,bl7),hi=_Mathimul(ah9,bh7),lo=0|lo+_Mathimul(al8,bl8),mid=0|mid+_Mathimul(al8,bh8),mid=0|mid+_Mathimul(ah8,bl8),hi=0|hi+_Mathimul(ah8,bh8),lo=0|lo+_Mathimul(al7,bl9),mid=0|mid+_Mathimul(al7,bh9),mid=0|mid+_Mathimul(ah7,bl9),hi=0|hi+_Mathimul(ah7,bh9);var w16=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w16>>>26),w16&=67108863,lo=_Mathimul(al9,bl8),mid=_Mathimul(al9,bh8),mid=0|mid+_Mathimul(ah9,bl8),hi=_Mathimul(ah9,bh8),lo=0|lo+_Mathimul(al8,bl9),mid=0|mid+_Mathimul(al8,bh9),mid=0|mid+_Mathimul(ah8,bl9),hi=0|hi+_Mathimul(ah8,bh9);var w17=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w17>>>26),w17&=67108863,lo=_Mathimul(al9,bl9),mid=_Mathimul(al9,bh9),mid=0|mid+_Mathimul(ah9,bl9),hi=_Mathimul(ah9,bh9);var w18=0|(0|c+lo)+((8191&mid)<<13);return c=0|(0|hi+(mid>>>13))+(w18>>>26),w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,0!==c&&(o[19]=c,out.length++),out};_Mathimul||(comb10MulTo=smallMulTo),BN.prototype.mulTo=function(num,out){var len=this.length+num.length,res;return res=10===this.length&&10===num.length?comb10MulTo(this,num,out):63>len?smallMulTo(this,num,out):1024>len?bigMulTo(this,num,out):jumboMulTo(this,num,out),res},FFTM.prototype.makeRBT=function(N){for(var t=Array(N),l=BN.prototype._countBits(N)-1,i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>=1)i++;return 1<=N))for(var i=0,t;iw?0:0|w/67108864;return ws},FFTM.prototype.convert13b=function(ws,len,rws,N){for(var carry=0,i=0;i>>=13,rws[2*i+1]=8191&carry,carry>>>=13;for(i=2*len;inum);for(var carry=0,i=0;i>=26,carry+=0|w/67108864,carry+=lo>>>26,this.words[i]=67108863&lo}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(0===w.length)return new BN(1);for(var res=this,i=0;i>>26-r<<26-r,c=(0|this.words[i])-newCarry<>>26-r}carry&&(this.words[i]=carry,this.length++)}if(0!==s){for(i=this.length-1;0<=i;i--)this.words[i+s]=this.words[i];for(i=0;is)for(this.length-=s,i=0;i=h);i--){var word=0|this.words[i];this.words[i]=carry<<26-r|word>>>r,carry=word&(67108863^67108863>>>r<>>r<num),0>num?this.isubn(-num):0===this.negative?this._iaddn(num):1===this.length&&(0|this.words[0])num),0>num)return this.iaddn(-num);if(0!==this.negative)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,1===this.length&&0>this.words[0])this.words[0]=-this.words[0],this.negative=1;else for(var i=0;ithis.words[i];i++)this.words[i]+=67108864,this.words[i+1]-=1;return this.strip()},BN.prototype.addn=function(num){return this.clone().iaddn(num)},BN.prototype.subn=function(num){return this.clone().isubn(num)},BN.prototype.iabs=function(){return this.negative=0,this},BN.prototype.abs=function(){return this.clone().iabs()},BN.prototype._ishlnsubmul=function(num,mul,shift){var len=num.length+shift,i;this._expand(len);var carry=0,w;for(i=0;i>26)-(0|right/67108864),this.words[i+shift]=67108863&w}for(;i>26,this.words[i+shift]=67108863&w;if(0===carry)return this.strip();for(assert(-1===carry),carry=0,i=0;i>26,this.words[i]=67108863&w;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=0|b.words[b.length-1],bhiBits=this._countBits(bhi);shift=26-bhiBits,0!=shift&&(b=b.ushln(shift),a.iushln(shift),bhi=0|b.words[b.length-1]);var m=a.length-b.length,q;if("mod"!==mode){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;ithis.length||0>this.cmp(num)?{div:new BN(0),mod:this}:1===num.length?"div"===mode?{div:this.divn(num.words[0]),mod:null}:"mod"===mode?{div:null,mod:new BN(this.modn(num.words[0]))}:{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}:this._wordDiv(num,mode):(res=this.neg().divmod(num.neg(),mode),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.isub(num)),{div:res.div,mod:mod})},BN.prototype.div=function(num){return this.divmod(num,"div",!1).div},BN.prototype.mod=function(num){return this.divmod(num,"mod",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,"mod",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=0===dm.div.negative?dm.mod:dm.mod.isub(num),half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);return 0>cmp||1===r2&&0===cmp?dm.div:0===dm.div.negative?dm.div.iaddn(1):dm.div.isubn(1)},BN.prototype.modn=function(num){assert(67108863>=num);for(var acc=0,i=this.length-1;0<=i;i--)acc=(67108864%num*acc+(0|this.words[i]))%num;return acc},BN.prototype.idivn=function(num){assert(67108863>=num);for(var carry=0,i=this.length-1,w;0<=i;i--)w=(0|this.words[i])+67108864*carry,this.words[i]=0|w/num,carry=w%num;return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(0===p.negative),assert(!p.isZero());var x=this,y=p.clone();x=0===x.negative?x.clone():x.umod(p);for(var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;x.isEven()&&y.isEven();)x.iushrn(1),y.iushrn(1),++g;for(var yp=y.clone(),xp=x.clone();!x.isZero();){for(var i=0,im=1;0==(x.words[0]&im)&&26>i;++i,im<<=1);if(0j;++j,jm<<=1);if(0i;++i,im<<=1);if(0j;++j,jm<<=1);if(0res.cmpn(0)&&res.iadd(p),res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;b.isEven();)b.iushrn(1);var r=a.cmp(b);if(0>r){var t=a;a=b,b=t}else if(0===r||0===b.cmpn(1))break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return 0==(1&this.words[0])},BN.prototype.isOdd=function(){return 1==(1&this.words[0])},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert("number"==typeof bit);var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w;return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function(num){var negative=0>num;if(0!==this.negative&&!negative)return-1;if(0===this.negative&&negative)return 1;this.strip();var res;if(1=num,"Number is too big");var w=0|this.words[0];res=w===num?0:wnum.length)return 1;if(this.lengthb&&(res=1);break}}return res},BN.prototype.gtn=function(num){return 1===this.cmpn(num)},BN.prototype.gt=function(num){return 1===this.cmp(num)},BN.prototype.gten=function(num){return 0<=this.cmpn(num)},BN.prototype.gte=function(num){return 0<=this.cmp(num)},BN.prototype.ltn=function(num){return-1===this.cmpn(num)},BN.prototype.lt=function(num){return-1===this.cmp(num)},BN.prototype.lten=function(num){return 0>=this.cmpn(num)},BN.prototype.lte=function(num){return 0>=this.cmp(num)},BN.prototype.eqn=function(num){return 0===this.cmpn(num)},BN.prototype.eq=function(num){return 0===this.cmp(num)},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(_Mathceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen=input.length)return input.words[0]=0,void(input.length=1);var prev=input.words[9];for(output.words[output.length++]=prev&mask,i=10;i>>22,prev=next}prev>>>=22,input.words[i-10]=prev,input.length-=0===prev&&10>>=26,num.words[i]=lo,carry=hi}return 0!==carry&&(num.words[num.length++]=carry),num},BN._prime=function prime(name){if(primes[name])return primes[name];var prime;if("k256"===name)prime=new K256;else if("p224"===name)prime=new P224;else if("p192"===name)prime=new P192;else if("p25519"===name)prime=new P25519;else throw new Error("Unknown prime "+name);return primes[name]=prime,prime},Red.prototype._verify1=function(a){assert(0===a.negative,"red works only with positives"),assert(a.red,"red works only with red numbers")},Red.prototype._verify2=function(a,b){assert(0==(a.negative|b.negative),"red works only with positives"),assert(a.red&&a.red===b.red,"red works only with red numbers")},Red.prototype.imod=function(a){return this.prime?this.prime.ireduce(a)._forceRed(this):a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){return a.isZero()?a.clone():this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);return 0<=res.cmp(this.m)&&res.isub(this.m),res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);return 0<=res.cmp(this.m)&&res.isub(this.m),res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);return 0>res.cmpn(0)&&res.iadd(this.m),res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);return 0>res.cmpn(0)&&res.iadd(this.m),res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(1==mod3%2),3===mod3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}for(var q=this.m.subn(1),s=0;!q.isZero()&&0===q.andln(1);)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();for(z=new BN(2*z*z).toRed(this);0!==this.pow(z,lpow).cmp(nOne);)z.redIAdd(nOne);for(var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;0!==t.cmp(one);){for(var tmp=t,i=0;0!==tmp.cmp(one);i++)tmp=tmp.redSqr();assert(i>j,res!==wnd[0]&&(res=this.sqr(res)),0===bit&&0===current){currentLen=0;continue}current<<=1,current|=bit,currentLen++,(4===currentLen||0===i&&0===j)&&(res=this.mul(res,wnd[current]),currentLen=0,current=0)}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)},inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return 0<=u.cmp(this.m)?res=u.isub(this.m):0>u.cmpn(0)&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return 0<=u.cmp(this.m)?res=u.isub(this.m):0>u.cmpn(0)&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})("undefined"==typeof module||module,this)},{buffer:41}],23:[function(require,module,exports){"use strict";function getLens(b64){var len=b64.length;if(0>16,arr[curByte++]=255&tmp>>8,arr[curByte++]=255&tmp;return 2===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4,arr[curByte++]=255&tmp),1===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2,arr[curByte++]=255&tmp>>8,arr[curByte++]=255&tmp),arr}function tripletToBase64(num){return lookup[63&num>>18]+lookup[63&num>>12]+lookup[63&num>>6]+lookup[63&num]}function encodeChunk(uint8,start,end){for(var output=[],i=start,tmp;ilen2?len2:i+maxChunkLength));return 1===extraBytes?(tmp=uint8[len-1],parts.push(lookup[tmp>>2]+lookup[63&tmp<<4]+"==")):2===extraBytes&&(tmp=(uint8[len-2]<<8)+uint8[len-1],parts.push(lookup[tmp>>10]+lookup[63&tmp>>4]+lookup[63&tmp<<2]+"=")),parts.join("")}exports.byteLength=function(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return 3*(validLen+placeHoldersLen)/4-placeHoldersLen},exports.toByteArray=toByteArray,exports.fromByteArray=fromByteArray;for(var lookup=[],revLookup=[],Arr="undefined"==typeof Uint8Array?Array:Uint8Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,len=code.length;inum&&48<=num){sum=10*sum+(num-48);continue}if(i!==start||43!==num){if(i===start&&45===num){sign=-1;continue}if(46===num)break;throw new Error("not a number: buffer["+i+"] = "+num)}}return sum*sign}function decode(data,start,end,encoding){return null==data||0===data.length?null:("number"!=typeof start&&null==encoding&&(encoding=start,start=void 0),"number"!=typeof end&&null==encoding&&(encoding=end,end=void 0),decode.position=0,decode.encoding=encoding||null,decode.data=Buffer.isBuffer(data)?data.slice(start,end):Buffer.from(data),decode.bytes=decode.data.length,decode.next())}const END_OF_TYPE=101;decode.bytes=0,decode.position=0,decode.data=null,decode.encoding=null,decode.next=function(){switch(decode.data[decode.position]){case 100:return decode.dictionary();case 108:return decode.list();case 105:return decode.integer();default:return decode.buffer();}},decode.find=function(chr){let i=decode.position;const c=decode.data.length,d=decode.data;for(;ivalue?1:0;return value=_Mathabs(+(value||1)),_Mathfloor(_Mathlog(value))+1+sign},util.getType=function(value){return Buffer.isBuffer(value)?"buffer":ArrayBuffer.isView(value)?"arraybufferview":Array.isArray(value)?"array":value instanceof Number?"number":value instanceof Boolean?"boolean":value instanceof Set?"set":value instanceof Map?"map":value instanceof String?"string":value instanceof ArrayBuffer?"arraybuffer":typeof value}}).call(this)}).call(this,{isBuffer:require("../../is-buffer/index.js")})},{"../../is-buffer/index.js":161}],29:[function(require,module){function parseRange(range){const generateRange=(start,end=start)=>Array.from({length:end-start+1},(cur,idx)=>idx+start);return range.reduce((acc,cur)=>{const r=cur.split("-").map(cur=>parseInt(cur));return acc.concat(generateRange(...r))},[])}module.exports=parseRange,module.exports.parse=parseRange,module.exports.compose=function(range){return range.reduce((acc,cur,idx,arr)=>((0===idx||cur!==arr[idx-1]+1)&&acc.push([]),acc[acc.length-1].push(cur),acc),[]).map(cur=>1low||low>=haystack.length)throw new RangeError("invalid lower bound");if(void 0===high)high=haystack.length-1;else if(high|=0,high=haystack.length)throw new RangeError("invalid upper bound");for(;low<=high;)if(mid=low+(high-low>>>1),cmp=+comparator(haystack[mid],needle,mid,haystack),0>cmp)low=mid+1;else if(0>3;return 0!=num%8&&out++,out}Object.defineProperty(exports,"__esModule",{value:!0});var BitField=function(){function BitField(data,opts){void 0===data&&(data=0);var grow=null===opts||void 0===opts?void 0:opts.grow;this.grow=grow&&isFinite(grow)&&getByteSize(grow)||grow||0,this.buffer="number"==typeof data?new Uint8Array(getByteSize(data)):data}return BitField.prototype.get=function(i){var j=i>>3;return j>i%8)},BitField.prototype.set=function(i,value){void 0===value&&(value=!0);var j=i>>3;if(value){if(this.buffer.length>i%8}else j>i%8))},BitField.prototype.forEach=function(fn,start,end){void 0===start&&(start=0),void 0===end&&(end=8*this.buffer.length);for(var i=start,j=i>>3,y=128>>i%8,byte=this.buffer[j];i>1},BitField}();exports.default=BitField},{}],32:[function(require,module){(function(Buffer){(function(){function xor(a,b){for(let len=a.length;len--;)a[len]^=b[len];return a}/*! bittorrent-protocol. MIT License. WebTorrent LLC */const arrayRemove=require("unordered-array-remove"),bencode=require("bencode"),BitField=require("bitfield").default,crypto=require("crypto"),debug=require("debug")("bittorrent-protocol"),randombytes=require("randombytes"),sha1=require("simple-sha1"),speedometer=require("speedometer"),stream=require("readable-stream"),RC4=require("rc4"),MESSAGE_PROTOCOL=Buffer.from("\x13BitTorrent protocol"),MESSAGE_KEEP_ALIVE=Buffer.from([0,0,0,0]),MESSAGE_CHOKE=Buffer.from([0,0,0,1,0]),MESSAGE_UNCHOKE=Buffer.from([0,0,0,1,1]),MESSAGE_INTERESTED=Buffer.from([0,0,0,1,2]),MESSAGE_UNINTERESTED=Buffer.from([0,0,0,1,3]),MESSAGE_RESERVED=[0,0,0,0,0,0,0,0],MESSAGE_PORT=[0,0,0,3,9,0,0],MESSAGE_HAVE_ALL=Buffer.from([0,0,0,1,14]),MESSAGE_HAVE_NONE=Buffer.from([0,0,0,1,15]),VC=Buffer.from([0,0,0,0,0,0,0,0]),CRYPTO_PROVIDE=Buffer.from([0,0,1,2]),CRYPTO_SELECT=Buffer.from([0,0,0,2]);class Request{constructor(piece,offset,length,callback){this.piece=piece,this.offset=offset,this.length=length,this.callback=callback}}class HaveAllBitField{constructor(){this.buffer=new Uint8Array}get(){return!0}set(){}}class Wire extends stream.Duplex{constructor(type=null,retries=0,peEnabled=!1){super(),this._debugId=randombytes(4).toString("hex"),this._debug("new wire"),this.peerId=null,this.peerIdBuffer=null,this.type=type,this.amChoking=!0,this.amInterested=!1,this.peerChoking=!0,this.peerInterested=!1,this.peerPieces=new BitField(0,{grow:4e5}),this.extensions={},this.peerExtensions={},this.requests=[],this.peerRequests=[],this.extendedMapping={},this.peerExtendedMapping={},this.extendedHandshake={},this.peerExtendedHandshake={},this.hasFast=!1,this.allowedFastSet=[],this.peerAllowedFastSet=[],this._ext={},this._nextExt=1,this.uploaded=0,this.downloaded=0,this.uploadSpeed=speedometer(),this.downloadSpeed=speedometer(),this._keepAliveInterval=null,this._timeout=null,this._timeoutMs=0,this._timeoutExpiresAt=null,this.destroyed=!1,this._finished=!1,this._parserSize=0,this._parser=null,this._buffer=[],this._bufferSize=0,this._peEnabled=peEnabled,peEnabled?(this._dh=crypto.createDiffieHellman("ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a36210000000000090563","hex",2),this._myPubKey=this._dh.generateKeys("hex")):this._myPubKey=null,this._peerPubKey=null,this._sharedSecret=null,this._peerCryptoProvide=[],this._cryptoHandshakeDone=!1,this._cryptoSyncPattern=null,this._waitMaxBytes=null,this._encryptionMethod=null,this._encryptGenerator=null,this._decryptGenerator=null,this._setGenerators=!1,this.once("finish",()=>this._onFinish()),this.on("finish",this._onFinish),this._debug("type:",this.type),"tcpIncoming"===this.type&&this._peEnabled?this._determineHandshakeType():"tcpOutgoing"===this.type&&this._peEnabled&&0===retries?this._parsePe2():this._parseHandshake(null)}setKeepAlive(enable){this._debug("setKeepAlive %s",enable),clearInterval(this._keepAliveInterval);!1===enable||(this._keepAliveInterval=setInterval(()=>{this.keepAlive()},55e3))}setTimeout(ms,unref){this._debug("setTimeout ms=%d unref=%s",ms,unref),this._timeoutMs=ms,this._timeoutUnref=!!unref,this._resetTimeout(!0)}destroy(){if(!this.destroyed)return this.destroyed=!0,this._debug("destroy"),this.emit("close"),this.end(),this}end(...args){return this._debug("end"),this._onUninterested(),this._onChoke(),super.end(...args)}use(Extension){function noop(){}const name=Extension.prototype.name;if(!name)throw new Error("Extension class requires a \"name\" property on the prototype");this._debug("use extension.name=%s",name);const ext=this._nextExt,handler=new Extension(this);"function"!=typeof handler.onHandshake&&(handler.onHandshake=noop),"function"!=typeof handler.onExtendedHandshake&&(handler.onExtendedHandshake=noop),"function"!=typeof handler.onMessage&&(handler.onMessage=noop),this.extendedMapping[ext]=name,this._ext[name]=handler,this[name]=handler,this._nextExt+=1}keepAlive(){this._debug("keep-alive"),this._push(MESSAGE_KEEP_ALIVE)}sendPe1(){if(this._peEnabled){const padALen=_Mathfloor(513*Math.random()),padA=randombytes(padALen);this._push(Buffer.concat([Buffer.from(this._myPubKey,"hex"),padA]))}}sendPe2(){const padBLen=_Mathfloor(513*Math.random()),padB=randombytes(padBLen);this._push(Buffer.concat([Buffer.from(this._myPubKey,"hex"),padB]))}sendPe3(infoHash){this.setEncrypt(this._sharedSecret,infoHash);const hash1Buffer=Buffer.from(sha1.sync(Buffer.from(this._utfToHex("req1")+this._sharedSecret,"hex")),"hex"),hash2Buffer=Buffer.from(sha1.sync(Buffer.from(this._utfToHex("req2")+infoHash,"hex")),"hex"),hash3Buffer=Buffer.from(sha1.sync(Buffer.from(this._utfToHex("req3")+this._sharedSecret,"hex")),"hex"),hashesXorBuffer=xor(hash2Buffer,hash3Buffer),padCLen=randombytes(2).readUInt16BE(0)%512,padCBuffer=randombytes(padCLen);let vcAndProvideBuffer=Buffer.alloc(14+padCLen+2);VC.copy(vcAndProvideBuffer),CRYPTO_PROVIDE.copy(vcAndProvideBuffer,8),vcAndProvideBuffer.writeInt16BE(padCLen,12),padCBuffer.copy(vcAndProvideBuffer,14),vcAndProvideBuffer.writeInt16BE(0,14+padCLen),vcAndProvideBuffer=this._encryptHandshake(vcAndProvideBuffer),this._push(Buffer.concat([hash1Buffer,hashesXorBuffer,vcAndProvideBuffer]))}sendPe4(infoHash){this.setEncrypt(this._sharedSecret,infoHash);const padDLen=randombytes(2).readUInt16BE(0)%512,padDBuffer=randombytes(padDLen);let vcAndSelectBuffer=Buffer.alloc(14+padDLen);VC.copy(vcAndSelectBuffer),CRYPTO_SELECT.copy(vcAndSelectBuffer,8),vcAndSelectBuffer.writeInt16BE(padDLen,12),padDBuffer.copy(vcAndSelectBuffer,14),vcAndSelectBuffer=this._encryptHandshake(vcAndSelectBuffer),this._push(vcAndSelectBuffer),this._cryptoHandshakeDone=!0,this._debug("completed crypto handshake")}handshake(infoHash,peerId,extensions){let infoHashBuffer,peerIdBuffer;if("string"==typeof infoHash?(infoHash=infoHash.toLowerCase(),infoHashBuffer=Buffer.from(infoHash,"hex")):(infoHashBuffer=infoHash,infoHash=infoHashBuffer.toString("hex")),"string"==typeof peerId?peerIdBuffer=Buffer.from(peerId,"hex"):(peerIdBuffer=peerId,peerId=peerIdBuffer.toString("hex")),this._infoHash=infoHashBuffer,20!==infoHashBuffer.length||20!==peerIdBuffer.length)throw new Error("infoHash and peerId MUST have length 20");this._debug("handshake i=%s p=%s exts=%o",infoHash,peerId,extensions);const reserved=Buffer.from(MESSAGE_RESERVED);this.extensions={extended:!0,dht:!!(extensions&&extensions.dht),fast:!!(extensions&&extensions.fast)},reserved[5]|=16,this.extensions.dht&&(reserved[7]|=1),this.extensions.fast&&(reserved[7]|=4),this.extensions.fast&&this.peerExtensions.fast&&(this._debug("fast extension is enabled"),this.hasFast=!0),this._push(Buffer.concat([MESSAGE_PROTOCOL,reserved,infoHashBuffer,peerIdBuffer])),this._handshakeSent=!0,this.peerExtensions.extended&&!this._extendedHandshakeSent&&this._sendExtendedHandshake()}_sendExtendedHandshake(){const msg=Object.assign({},this.extendedHandshake);for(const ext in msg.m={},this.extendedMapping){const name=this.extendedMapping[ext];msg.m[name]=+ext}this.extended(0,bencode.encode(msg)),this._extendedHandshakeSent=!0}choke(){if(!this.amChoking)if(this.amChoking=!0,this._debug("choke"),this._push(MESSAGE_CHOKE),this.hasFast)for(;this.peerRequests.length;){const request=this.peerRequests[0];this.allowedFastSet.includes(request.piece)||this.reject(request.piece,request.offset,request.length)}else for(;this.peerRequests.length;)this.peerRequests.pop()}unchoke(){this.amChoking&&(this.amChoking=!1,this._debug("unchoke"),this._push(MESSAGE_UNCHOKE))}interested(){this.amInterested||(this.amInterested=!0,this._debug("interested"),this._push(MESSAGE_INTERESTED))}uninterested(){this.amInterested&&(this.amInterested=!1,this._debug("uninterested"),this._push(MESSAGE_UNINTERESTED))}have(index){this._debug("have %d",index),this._message(4,[index],null)}bitfield(bitfield){this._debug("bitfield"),Buffer.isBuffer(bitfield)||(bitfield=bitfield.buffer),this._message(5,[],bitfield)}request(index,offset,length,cb){return cb||(cb=()=>{}),this._finished?cb(new Error("wire is closed")):this.peerChoking&&!(this.hasFast&&this.peerAllowedFastSet.includes(index))?cb(new Error("peer is choking")):void(this._debug("request index=%d offset=%d length=%d",index,offset,length),this.requests.push(new Request(index,offset,length,cb)),!this._timeout&&this._resetTimeout(!0),this._message(6,[index,offset,length],null))}piece(index,offset,buffer){this._debug("piece index=%d offset=%d",index,offset),this._message(7,[index,offset],buffer),this.uploaded+=buffer.length,this.uploadSpeed(buffer.length),this.emit("upload",buffer.length)}cancel(index,offset,length){this._debug("cancel index=%d offset=%d length=%d",index,offset,length),this._callback(this._pull(this.requests,index,offset,length),new Error("request was cancelled"),null),this._message(8,[index,offset,length],null)}port(port){this._debug("port %d",port);const message=Buffer.from(MESSAGE_PORT);message.writeUInt16BE(port,5),this._push(message)}suggest(index){if(!this.hasFast)throw Error("fast extension is disabled");this._debug("suggest %d",index),this._message(13,[index],null)}haveAll(){if(!this.hasFast)throw Error("fast extension is disabled");this._debug("have-all"),this._push(MESSAGE_HAVE_ALL)}haveNone(){if(!this.hasFast)throw Error("fast extension is disabled");this._debug("have-none"),this._push(MESSAGE_HAVE_NONE)}reject(index,offset,length){if(!this.hasFast)throw Error("fast extension is disabled");this._debug("reject index=%d offset=%d length=%d",index,offset,length),this._pull(this.peerRequests,index,offset,length),this._message(16,[index,offset,length],null)}allowedFast(index){if(!this.hasFast)throw Error("fast extension is disabled");this._debug("allowed-fast %d",index),this.allowedFastSet.includes(index)||this.allowedFastSet.push(index),this._message(17,[index],null)}extended(ext,obj){if(this._debug("extended ext=%s",ext),"string"==typeof ext&&this.peerExtendedMapping[ext]&&(ext=this.peerExtendedMapping[ext]),"number"==typeof ext){const extId=Buffer.from([ext]),buf=Buffer.isBuffer(obj)?obj:bencode.encode(obj);this._message(20,[],Buffer.concat([extId,buf]))}else throw new Error(`Unrecognized extension: ${ext}`)}setEncrypt(sharedSecret,infoHash){let encryptKey,decryptKey,encryptKeyBuf,encryptKeyIntArray,decryptKeyBuf,decryptKeyIntArray;switch(this.type){case"tcpIncoming":encryptKey=sha1.sync(Buffer.from(this._utfToHex("keyB")+sharedSecret+infoHash,"hex")),decryptKey=sha1.sync(Buffer.from(this._utfToHex("keyA")+sharedSecret+infoHash,"hex")),encryptKeyBuf=Buffer.from(encryptKey,"hex"),encryptKeyIntArray=[];for(const value of encryptKeyBuf.values())encryptKeyIntArray.push(value);decryptKeyBuf=Buffer.from(decryptKey,"hex"),decryptKeyIntArray=[];for(const value of decryptKeyBuf.values())decryptKeyIntArray.push(value);this._encryptGenerator=new RC4(encryptKeyIntArray),this._decryptGenerator=new RC4(decryptKeyIntArray);break;case"tcpOutgoing":encryptKey=sha1.sync(Buffer.from(this._utfToHex("keyA")+sharedSecret+infoHash,"hex")),decryptKey=sha1.sync(Buffer.from(this._utfToHex("keyB")+sharedSecret+infoHash,"hex")),encryptKeyBuf=Buffer.from(encryptKey,"hex"),encryptKeyIntArray=[];for(const value of encryptKeyBuf.values())encryptKeyIntArray.push(value);decryptKeyBuf=Buffer.from(decryptKey,"hex"),decryptKeyIntArray=[];for(const value of decryptKeyBuf.values())decryptKeyIntArray.push(value);this._encryptGenerator=new RC4(encryptKeyIntArray),this._decryptGenerator=new RC4(decryptKeyIntArray);break;default:return!1;}for(let i=0;1024>i;i++)this._encryptGenerator.randomByte(),this._decryptGenerator.randomByte();return this._setGenerators=!0,!0}_read(){}_message(id,numbers,data){const dataLength=data?data.length:0,buffer=Buffer.allocUnsafe(5+4*numbers.length);buffer.writeUInt32BE(buffer.length+dataLength-4,0),buffer[4]=id;for(let i=0;irequest===this._pull(this.peerRequests,index,offset,length)?err?(this._debug("error satisfying request index=%d offset=%d length=%d (%s)",index,offset,length,err.message),void(this.hasFast&&this.reject(index,offset,length))):void this.piece(index,offset,buffer):void 0,request=new Request(index,offset,length,respond);this.peerRequests.push(request),this.emit("request",index,offset,length,respond)}_onPiece(index,offset,buffer){this._debug("got piece index=%d offset=%d",index,offset),this._callback(this._pull(this.requests,index,offset,buffer.length),null,buffer),this.downloaded+=buffer.length,this.downloadSpeed(buffer.length),this.emit("download",buffer.length),this.emit("piece",index,offset,buffer)}_onCancel(index,offset,length){this._debug("got cancel index=%d offset=%d length=%d",index,offset,length),this._pull(this.peerRequests,index,offset,length),this.emit("cancel",index,offset,length)}_onPort(port){this._debug("got port %d",port),this.emit("port",port)}_onSuggest(index){return this.hasFast?void(this._debug("got suggest %d",index),this.emit("suggest",index)):(this._debug("Error: got suggest whereas fast extension is disabled"),void this.destroy())}_onHaveAll(){return this.hasFast?void(this._debug("got have-all"),this.peerPieces=new HaveAllBitField,this.emit("have-all")):(this._debug("Error: got have-all whereas fast extension is disabled"),void this.destroy())}_onHaveNone(){return this.hasFast?void(this._debug("got have-none"),this.emit("have-none")):(this._debug("Error: got have-none whereas fast extension is disabled"),void this.destroy())}_onReject(index,offset,length){return this.hasFast?void(this._debug("got reject index=%d offset=%d length=%d",index,offset,length),this._callback(this._pull(this.requests,index,offset,length),new Error("request was rejected"),null),this.emit("reject",index,offset,length)):(this._debug("Error: got reject whereas fast extension is disabled"),void this.destroy())}_onAllowedFast(index){return this.hasFast?void(this._debug("got allowed-fast %d",index),!this.peerAllowedFastSet.includes(index)&&this.peerAllowedFastSet.push(index),this.peerAllowedFastSet.length>100&&this.peerAllowedFastSet.shift(),this.emit("allowed-fast",index)):(this._debug("Error: got allowed-fast whereas fast extension is disabled"),void this.destroy())}_onExtended(ext,buf){if(0===ext){let info;try{info=bencode.decode(buf)}catch(err){this._debug("ignoring invalid extended handshake: %s",err.message||err)}if(!info)return;if(this.peerExtendedHandshake=info,"object"==typeof info.m)for(const name in info.m)this.peerExtendedMapping[name]=+info.m[name].toString();for(const name in this._ext)this.peerExtendedMapping[name]&&this._ext[name].onExtendedHandshake(this.peerExtendedHandshake);this._debug("got extended handshake"),this.emit("extended","handshake",this.peerExtendedHandshake)}else this.extendedMapping[ext]&&(ext=this.extendedMapping[ext],this._ext[ext]&&this._ext[ext].onMessage(buf)),this._debug("got extended message ext=%s",ext),this.emit("extended",ext,buf)}_onTimeout(){this._debug("request timed out"),this._callback(this.requests.shift(),new Error("request has timed out"),null),this.emit("timeout")}_write(data,encoding,cb){if(2===this._encryptionMethod&&this._cryptoHandshakeDone&&(data=this._decrypt(data)),this._bufferSize+=data.length,this._buffer.push(data),1this._waitMaxBytes+this._cryptoSyncPattern.length)return this._debug("Error: could not resynchronize"),void this.destroy()}for(;this._bufferSize>=this._parserSize&&!this._cryptoSyncPattern;)if(0===this._parserSize)this._parser(Buffer.from([]));else{const buffer=this._buffer[0];this._bufferSize-=this._parserSize,this._buffer=this._bufferSize?[buffer.slice(this._parserSize)]:[],this._parser(buffer.slice(0,this._parserSize))}cb(null)}_callback(request,err,buffer){request&&(this._resetTimeout(!this.peerChoking&&!this._finished),request.callback(err,buffer))}_resetTimeout(setAgain){if(!setAgain||!this._timeoutMs||!this.requests.length)return clearTimeout(this._timeout),this._timeout=null,void(this._timeoutExpiresAt=null);const timeoutExpiresAt=Date.now()+this._timeoutMs;if(this._timeout){if(timeoutExpiresAt-this._timeoutExpiresAt<.05*this._timeoutMs)return;clearTimeout(this._timeout)}this._timeoutExpiresAt=timeoutExpiresAt,this._timeout=setTimeout(()=>this._onTimeout(),this._timeoutMs),this._timeoutUnref&&this._timeout.unref&&this._timeout.unref()}_parse(size,parser){this._parserSize=size,this._parser=parser}_parseUntil(pattern,maxBytes){this._cryptoSyncPattern=pattern,this._waitMaxBytes=maxBytes}_onMessageLength(buffer){const length=buffer.readUInt32BE(0);0{const pstrlen=pstrLenBuffer.readUInt8(0);19===pstrlen?this._parse(pstrlen+48,this._onHandshakeBuffer):this._parsePe1(pstrLenBuffer)})}_parsePe1(pubKeyPrefix){this._parse(95,pubKeySuffix=>{this._onPe1(Buffer.concat([pubKeyPrefix,pubKeySuffix])),this._parsePe3()})}_parsePe2(){this._parse(96,pubKey=>{for(this._onPe2(pubKey);!this._setGenerators;);this._parsePe4()})}_parsePe3(){const hash1Buffer=Buffer.from(sha1.sync(Buffer.from(this._utfToHex("req1")+this._sharedSecret,"hex")),"hex");this._parseUntil(hash1Buffer,512),this._parse(20,buffer=>{for(this._onPe3(buffer);!this._setGenerators;);this._parsePe3Encrypted()})}_parsePe3Encrypted(){this._parse(14,buffer=>{const vcBuffer=this._decryptHandshake(buffer.slice(0,8)),peerProvideBuffer=this._decryptHandshake(buffer.slice(8,12)),padCLen=this._decryptHandshake(buffer.slice(12,14)).readUInt16BE(0);this._parse(padCLen,padCBuffer=>{padCBuffer=this._decryptHandshake(padCBuffer),this._parse(2,iaLenBuf=>{const iaLen=this._decryptHandshake(iaLenBuf).readUInt16BE(0);this._parse(iaLen,iaBuffer=>{iaBuffer=this._decryptHandshake(iaBuffer),this._onPe3Encrypted(vcBuffer,peerProvideBuffer,padCBuffer,iaBuffer);const pstrlen=iaLen?iaBuffer.readUInt8(0):null,protocol=iaLen?iaBuffer.slice(1,20):null;19===pstrlen&&"BitTorrent protocol"===protocol.toString()?this._onHandshakeBuffer(iaBuffer.slice(1)):this._parseHandshake()})})})})}_parsePe4(){const vcBufferEncrypted=this._decryptHandshake(VC);this._parseUntil(vcBufferEncrypted,512),this._parse(6,buffer=>{const peerSelectBuffer=this._decryptHandshake(buffer.slice(0,4)),padDLen=this._decryptHandshake(buffer.slice(4,6)).readUInt16BE(0);this._parse(padDLen,padDBuf=>{this._decryptHandshake(padDBuf),this._onPe4(peerSelectBuffer),this._parseHandshake(null)})})}_parseHandshake(){this._parse(1,buffer=>{const pstrlen=buffer.readUInt8(0);return 19===pstrlen?void this._parse(pstrlen+48,this._onHandshakeBuffer):(this._debug("Error: wire not speaking BitTorrent protocol (%s)",pstrlen.toString()),void this.end())})}_onHandshakeBuffer(handshake){const protocol=handshake.slice(0,19);return"BitTorrent protocol"===protocol.toString()?void(handshake=handshake.slice(19),this._onHandshake(handshake.slice(8,28),handshake.slice(28,48),{dht:!!(1&handshake[7]),fast:!!(4&handshake[7]),extended:!!(16&handshake[5])}),this._parse(4,this._onMessageLength)):(this._debug("Error: wire not speaking BitTorrent protocol (%s)",protocol.toString()),void this.end())}_onFinish(){for(this._finished=!0,this.push(null);this.read(););for(clearInterval(this._keepAliveInterval),this._parse(Number.MAX_VALUE,()=>{});this.peerRequests.length;)this.peerRequests.pop();for(;this.requests.length;)this._callback(this.requests.pop(),new Error("wire was closed"),null)}_debug(...args){args[0]=`[${this._debugId}] ${args[0]}`,debug(...args)}_pull(requests,piece,offset,length){for(let i=0;i(announceUrl=announceUrl.toString(),"/"===announceUrl[announceUrl.length-1]&&(announceUrl=announceUrl.substring(0,announceUrl.length-1)),announceUrl)),announce=Array.from(new Set(announce));const webrtcSupport=!1!==this._wrtc&&(!!this._wrtc||Peer.WEBRTC_SUPPORT),nextTickWarn=err=>{queueMicrotask(()=>{this.emit("warning",err)})};this._trackers=announce.map(announceUrl=>{let parsedUrl;try{parsedUrl=common.parseUrl(announceUrl)}catch(err){return nextTickWarn(new Error(`Invalid tracker URL: ${announceUrl}`)),null}const port=parsedUrl.port;if(0>port||65535{tracker.setInterval()})}stop(opts){opts=this._defaultAnnounceOpts(opts),opts.event="stopped",debug("send `stop` %o",opts),this._announce(opts)}complete(opts){opts||(opts={}),opts=this._defaultAnnounceOpts(opts),opts.event="completed",debug("send `complete` %o",opts),this._announce(opts)}update(opts){opts=this._defaultAnnounceOpts(opts),opts.event&&delete opts.event,debug("send `update` %o",opts),this._announce(opts)}_announce(opts){this._trackers.forEach(tracker=>{tracker.announce(opts)})}scrape(opts){debug("send `scrape`"),opts||(opts={}),this._trackers.forEach(tracker=>{tracker.scrape(opts)})}setInterval(intervalMs){debug("setInterval %d",intervalMs),this._trackers.forEach(tracker=>{tracker.setInterval(intervalMs)})}destroy(cb){if(!this.destroyed){this.destroyed=!0,debug("destroy");const tasks=this._trackers.map(tracker=>cb=>{tracker.destroy(cb)});parallel(tasks,cb),this._trackers=[],this._getAnnounceOpts=null}}_defaultAnnounceOpts(opts={}){return null==opts.numwant&&(opts.numwant=common.DEFAULT_ANNOUNCE_PEERS),null==opts.uploaded&&(opts.uploaded=0),null==opts.downloaded&&(opts.downloaded=0),this._getAnnounceOpts&&(opts=Object.assign({},opts,this._getAnnounceOpts())),opts}}Client.scrape=(opts,cb)=>{if(cb=once(cb),!opts.infoHash)throw new Error("Option `infoHash` is required");if(!opts.announce)throw new Error("Option `announce` is required");const clientOpts=Object.assign({},opts,{infoHash:Array.isArray(opts.infoHash)?opts.infoHash[0]:opts.infoHash,peerId:Buffer.from("01234567890123456789"),port:6881}),client=new Client(clientOpts);client.once("error",cb),client.once("warning",cb);let len=Array.isArray(opts.infoHash)?opts.infoHash.length:1;const results={};return client.on("scrape",data=>{if(len-=1,results[data.infoHash]=data,0===len){client.destroy();const keys=Object.keys(results);1===keys.length?cb(null,results[keys[0]]):cb(null,results)}}),opts.infoHash=Array.isArray(opts.infoHash)?opts.infoHash.map(infoHash=>Buffer.from(infoHash,"hex")):Buffer.from(opts.infoHash,"hex"),client.scrape({infoHash:opts.infoHash}),client},module.exports=Client}).call(this)}).call(this,require("_process"),require("buffer").Buffer)},{"./lib/client/http-tracker":41,"./lib/client/udp-tracker":41,"./lib/client/websocket-tracker":35,"./lib/common":36,_process:205,buffer:69,debug:105,events:70,once:191,"queue-microtask":218,"run-parallel":245,"simple-peer":259}],34:[function(require,module){const EventEmitter=require("events");module.exports=class extends EventEmitter{constructor(client,announceUrl){super(),this.client=client,this.announceUrl=announceUrl,this.interval=null,this.destroyed=!1}setInterval(intervalMs){null==intervalMs&&(intervalMs=this.DEFAULT_ANNOUNCE_INTERVAL),clearInterval(this.interval),intervalMs&&(this.interval=setInterval(()=>{this.announce(this.client._defaultAnnounceOpts())},intervalMs),this.interval.unref&&this.interval.unref())}}},{events:70}],35:[function(require,module){function noop(){}const clone=require("clone"),debug=require("debug")("bittorrent-tracker:websocket-tracker"),Peer=require("simple-peer"),randombytes=require("randombytes"),Socket=require("simple-websocket"),Socks=require("socks"),common=require("../common"),Tracker=require("./tracker"),socketPool={};class WebSocketTracker extends Tracker{constructor(client,announceUrl){super(client,announceUrl),debug("new websocket tracker %s",announceUrl),this.peers={},this.socket=null,this.reconnecting=!1,this.retries=0,this.reconnectTimer=null,this.expectingResponse=!1,this._openSocket()}announce(opts){if(this.destroyed||this.reconnecting)return;if(!this.socket.connected)return void this.socket.once("connect",()=>{this.announce(opts)});const params=Object.assign({},opts,{action:"announce",info_hash:this.client._infoHashBinary,peer_id:this.client._peerIdBinary});if(this._trackerId&&(params.trackerid=this._trackerId),"stopped"===opts.event||"completed"===opts.event)this._send(params);else{const numwant=_Mathmin(opts.numwant,5);this._generateOffers(numwant,offers=>{params.numwant=numwant,params.offers=offers,this._send(params)})}}scrape(opts){if(this.destroyed||this.reconnecting)return;if(!this.socket.connected)return void this.socket.once("connect",()=>{this.scrape(opts)});const infoHashes=Array.isArray(opts.infoHash)&&0infoHash.toString("binary")):opts.infoHash&&opts.infoHash.toString("binary")||this.client._infoHashBinary;this._send({action:"scrape",info_hash:infoHashes})}destroy(cb=noop){function destroyCleanup(){timeout&&(clearTimeout(timeout),timeout=null),socket.removeListener("data",destroyCleanup),socket.destroy(),socket=null}if(this.destroyed)return cb(null);for(const peerId in this.destroyed=!0,clearInterval(this.interval),clearTimeout(this.reconnectTimer),this.peers){const peer=this.peers[peerId];clearTimeout(peer.trackerTimeout),peer.destroy()}if(this.peers=null,this.socket&&(this.socket.removeListener("connect",this._onSocketConnectBound),this.socket.removeListener("data",this._onSocketDataBound),this.socket.removeListener("close",this._onSocketCloseBound),this.socket.removeListener("error",this._onSocketErrorBound),this.socket=null),this._onSocketConnectBound=null,this._onSocketErrorBound=null,this._onSocketDataBound=null,this._onSocketCloseBound=null,socketPool[this.announceUrl]&&(socketPool[this.announceUrl].consumers-=1),0{this._onSocketConnect()},this._onSocketErrorBound=err=>{this._onSocketError(err)},this._onSocketDataBound=data=>{this._onSocketData(data)},this._onSocketCloseBound=()=>{this._onSocketClose()},this.socket=socketPool[this.announceUrl],this.socket)socketPool[this.announceUrl].consumers+=1,this.socket.connected&&this._onSocketConnectBound();else{const parsedUrl=new URL(this.announceUrl);let agent;this.client._proxyOpts&&(agent="wss:"===parsedUrl.protocol?this.client._proxyOpts.httpsAgent:this.client._proxyOpts.httpAgent,!agent&&this.client._proxyOpts.socksProxy&&(agent=new Socks.Agent(clone(this.client._proxyOpts.socksProxy),"wss:"===parsedUrl.protocol))),this.socket=socketPool[this.announceUrl]=new Socket({url:this.announceUrl,agent}),this.socket.consumers=1,this.socket.once("connect",this._onSocketConnectBound)}this.socket.on("data",this._onSocketDataBound),this.socket.once("close",this._onSocketCloseBound),this.socket.once("error",this._onSocketErrorBound)}_onSocketConnect(){this.destroyed||this.reconnecting&&(this.reconnecting=!1,this.retries=0,this.announce(this.client._defaultAnnounceOpts()))}_onSocketData(data){if(!this.destroyed){this.expectingResponse=!1;try{data=JSON.parse(data)}catch(err){return void this.client.emit("warning",new Error("Invalid tracker response"))}"announce"===data.action?this._onAnnounceResponse(data):"scrape"===data.action?this._onScrapeResponse(data):this._onSocketError(new Error(`invalid action in WS response: ${data.action}`))}}_onAnnounceResponse(data){if(data.info_hash!==this.client._infoHashBinary)return void debug("ignoring websocket data from %s for %s (looking for %s: reused socket)",this.announceUrl,common.binaryToHex(data.info_hash),this.client.infoHash);if(data.peer_id&&data.peer_id===this.client._peerIdBinary)return;debug("received %s from %s for %s",JSON.stringify(data),this.announceUrl,this.client.infoHash);const failure=data["failure reason"];if(failure)return this.client.emit("warning",new Error(failure));const warning=data["warning message"];warning&&this.client.emit("warning",new Error(warning));const interval=data.interval||data["min interval"];interval&&this.setInterval(1e3*interval);const trackerId=data["tracker id"];if(trackerId&&(this._trackerId=trackerId),null!=data.complete){const response=Object.assign({},data,{announce:this.announceUrl,infoHash:common.binaryToHex(data.info_hash)});this.client.emit("update",response)}let peer;if(data.offer&&data.peer_id&&(debug("creating peer (from remote offer)"),peer=this._createPeer(),peer.id=common.binaryToHex(data.peer_id),peer.once("signal",answer=>{const params={action:"announce",info_hash:this.client._infoHashBinary,peer_id:this.client._peerIdBinary,to_peer_id:data.peer_id,answer,offer_id:data.offer_id};this._trackerId&&(params.trackerid=this._trackerId),this._send(params)}),this.client.emit("peer",peer),peer.signal(data.offer)),data.answer&&data.peer_id){const offerId=common.binaryToHex(data.offer_id);peer=this.peers[offerId],peer?(peer.id=common.binaryToHex(data.peer_id),this.client.emit("peer",peer),peer.signal(data.answer),clearTimeout(peer.trackerTimeout),peer.trackerTimeout=null,delete this.peers[offerId]):debug(`got unexpected answer: ${JSON.stringify(data.answer)}`)}}_onScrapeResponse(data){data=data.files||{};const keys=Object.keys(data);return 0===keys.length?void this.client.emit("warning",new Error("invalid scrape response")):void keys.forEach(infoHash=>{const response=Object.assign(data[infoHash],{announce:this.announceUrl,infoHash:common.binaryToHex(infoHash)});this.client.emit("scrape",response)})}_onSocketClose(){this.destroyed||(this.destroy(),this._startReconnectTimer())}_onSocketError(err){this.destroyed||(this.destroy(),this.client.emit("warning",err),this._startReconnectTimer())}_startReconnectTimer(){const ms=_Mathfloor(Math.random()*300000)+_Mathmin(_Mathpow(2,this.retries)*10000,3600000);this.reconnecting=!0,clearTimeout(this.reconnectTimer),this.reconnectTimer=setTimeout(()=>{this.retries++,this._openSocket()},ms),this.reconnectTimer.unref&&this.reconnectTimer.unref(),debug("reconnecting socket in %s ms",ms)}_send(params){if(!this.destroyed){this.expectingResponse=!0;const message=JSON.stringify(params);debug("send %s",message),this.socket.send(message)}}_generateOffers(numwant,cb){function generateOffer(){const offerId=randombytes(20).toString("hex");debug("creating peer (from _generateOffers)");const peer=self.peers[offerId]=self._createPeer({initiator:!0});peer.once("signal",offer=>{offers.push({offer,offer_id:common.hexToBinary(offerId)}),checkDone()}),peer.trackerTimeout=setTimeout(()=>{debug("tracker timeout: destroying peer"),peer.trackerTimeout=null,delete self.peers[offerId],peer.destroy()},50000),peer.trackerTimeout.unref&&peer.trackerTimeout.unref()}function checkDone(){offers.length===numwant&&(debug("generated %s offers",numwant),cb(offers))}const self=this,offers=[];debug("generating %s offers",numwant);for(let i=0;i("string"!=typeof str&&(str+=""),Buffer.from(str,"binary").toString("hex")),exports.hexToBinary=str=>("string"!=typeof str&&(str+=""),Buffer.from(str,"hex").toString("binary")),exports.parseUrl=str=>{const url=new URL(str.replace(/^udp:/,"http:"));return str.match(/^udp:/)&&Object.defineProperties(url,{href:{value:url.href.replace(/^http/,"udp")},protocol:{value:url.protocol.replace(/^http/,"udp")},origin:{value:url.origin.replace(/^http/,"udp")}}),url};const config=require("./common-node");Object.assign(exports,config)}).call(this)}).call(this,require("buffer").Buffer)},{"./common-node":41,buffer:69}],37:[function(require,module){(function(Buffer){(function(){/*! blob-to-buffer. MIT License. Feross Aboukhadijeh */module.exports=function(blob,cb){function onLoadEnd(e){reader.removeEventListener("loadend",onLoadEnd,!1),e.error?cb(e.error):cb(null,Buffer.from(reader.result))}if("undefined"==typeof Blob||!(blob instanceof Blob))throw new Error("first argument must be a Blob");if("function"!=typeof cb)throw new Error("second argument must be a function");const reader=new FileReader;reader.addEventListener("loadend",onLoadEnd,!1),reader.readAsArrayBuffer(blob)}}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69}],38:[function(require,module){(function(Buffer){(function(){const{Transform}=require("readable-stream");module.exports=class extends Transform{constructor(size,opts={}){super(opts),"object"==typeof size&&(opts=size,size=opts.size),this.size=size||512;const{nopad,zeroPadding=!0}=opts;this._zeroPadding=!nopad&&!!zeroPadding,this._buffered=[],this._bufferedBytes=0}_transform(buf,enc,next){for(this._bufferedBytes+=buf.length,this._buffered.push(buf);this._bufferedBytes>=this.size;){this._bufferedBytes-=this.size;const blockBufs=[];for(let blockBufsBytes=0;blockBufsBytes=c?c-48:65<=c&&70>=c?c-55:97<=c&&102>=c?c-87:void assert(!1,"Invalid character in "+string)}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);return index-1>=lowerBound&&(r|=parseHex4Bits(string,index-1)<<4),r}function parseBase(str,start,end,mul){for(var r=0,b=0,len=_Mathmin(str.length,end),i=start,c;i"}function toBitArray(num){for(var w=Array(num.bitLength()),bit=0;bit>>wbit}return w}function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=0|self.length+num.length;out.length=len,len=0|len-1;var a=0|self.words[0],b=0|num.words[0],r=a*b,lo=67108863&r,carry=0|r/67108864;out.words[0]=lo;for(var k=1;k>>26,rword=67108863&carry,maxJ=_Mathmin(k,num.length-1),j=_Mathmax(0,k-self.length+1),i;j<=maxJ;j++)i=0|k-j,a=0|self.words[i],b=0|num.words[j],r=a*b+rword,ncarry+=0|r/67108864,rword=67108863&r;out.words[k]=0|rword,carry=0|ncarry}return 0===carry?out.length--:out.words[k]=0|carry,out._strip()}function bigMulTo(self,num,out){out.negative=num.negative^self.negative,out.length=self.length+num.length;for(var carry=0,hncarry=0,k=0,ncarry;k>>26),hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}return 0===carry?out.length--:out.words[k]=carry,out._strip()}function jumboMulTo(self,num,out){return bigMulTo(self,num,out)}function FFTM(x,y){this.x=x,this.y=y}function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(m){if("string"==typeof m){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),"modulus must be greater than 1"),this.m=m,this.prime=null}function Mont(m){Red.call(this,m),this.shift=this.m.bitLength(),0!=this.shift%26&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}"object"==typeof module?module.exports=BN:exports.BN=BN,BN.BN=BN,BN.wordSize=26;var Buffer;try{Buffer="undefined"!=typeof window&&"undefined"!=typeof window.Buffer?window.Buffer:require("buffer").Buffer}catch(e){}if(BN.isBN=function(num){return!!(num instanceof BN)||null!==num&&"object"==typeof num&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){return 0left.cmp(right)?left:right},BN.prototype._init=function(number,base,endian){if("number"==typeof number)return this._initNumber(number,base,endian);if("object"==typeof number)return this._initArray(number,base,endian);"hex"===base&&(base=16),assert(base===(0|base)&&2<=base&&36>=base),number=number.toString().replace(/\s+/g,"");var start=0;"-"===number[0]&&(start++,this.negative=1),startnumber&&(this.negative=1,number=-number),67108864>number?(this.words=[67108863&number],this.length=1):4503599627370496>number?(this.words=[67108863&number,67108863&number/67108864],this.length=2):(assert(9007199254740992>number),this.words=[67108863&number,67108863&number/67108864,1],this.length=3),"le"!==endian||this._initArray(this.toArray(),base,endian)},BN.prototype._initArray=function(number,base,endian){if(assert("number"==typeof number.length),0>=number.length)return this.words=[0],this.length=1,this;this.length=_Mathceil(number.length/3),this.words=Array(this.length);for(var i=0;i>>26-off,off+=24,26<=off&&(off-=26,j++);else if("le"===endian)for(i=0,j=0;i>>26-off,off+=24,26<=off&&(off-=26,j++);return this._strip()},BN.prototype._parseHex=function(number,start,endian){this.length=_Mathceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)w=parseHexByte(number,start,i)<>>26):off+=8;else{var parseLength=number.length-start;for(i=0==parseLength%2?start+1:start;i>>26):off+=8}this._strip()},BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;67108863>=limbPow;limbPow*=base)limbLen++;limbLen--,limbPow=0|limbPow/base;for(var total=number.length-start,mod=total%limbLen,end=_Mathmin(total,total-mod)+start,word=0,i=start;ithis.words[0]+word?this.words[0]+=word:this._iaddn(word);if(0!==mod){var pow=1;for(word=parseBase(number,i,number.length,base),i=0;ithis.words[0]+word?this.words[0]+=word:this._iaddn(word)}this._strip()},BN.prototype.copy=function(dest){dest.words=Array(this.length);for(var i=0;i>>24-off,out=0!==carry||i!==this.length-1?zeros[6-word.length]+word+out:word+out,off+=2,26<=off&&(off-=26,i--)}for(0!==carry&&(out=carry.toString(16)+out);0!=out.length%padding;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}if(base===(0|base)&&2<=base&&36>=base){var groupSize=groupSizes[base],groupBase=groupBases[base];out="";var c=this.clone();for(c.negative=0;!c.isZero();){var r=c.modrn(groupBase).toString(base);c=c.idivn(groupBase),out=c.isZero()?r+out:zeros[groupSize-r.length]+r+out}for(this.isZero()&&(out="0"+out);0!=out.length%padding;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function(){var ret=this.words[0];return 2===this.length?ret+=67108864*this.words[1]:3===this.length&&1===this.words[2]?ret+=4503599627370496+67108864*this.words[1]:2>8),position>16),6==shift?(position>24),carry=0,shift=0):(carry=word>>>24,shift+=2);if(position>8),0<=position&&(res[position--]=255&word>>16),6==shift?(0<=position&&(res[position--]=255&word>>24),carry=0,shift=0):(carry=word>>>24,shift+=2);if(0<=position)for(res[position--]=carry;0<=position;)res[position--]=0},BN.prototype._countBits=_Mathclz?function(w){return 32-_Mathclz(w)}:function(w){var t=w,r=0;return 4096<=t&&(r+=13,t>>>=13),64<=t&&(r+=7,t>>>=7),8<=t&&(r+=4,t>>>=4),2<=t&&(r+=2,t>>>=2),r+t},BN.prototype._zeroBits=function(w){if(0===w)return 26;var t=w,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return 26*(this.length-1)+hi},BN.prototype.zeroBits=function(){if(this.isZero())return 0;for(var r=0,i=0,b;inum.length?this.clone().ior(num):num.clone().ior(this)},BN.prototype.uor=function(num){return this.length>num.length?this.clone().iuor(num):num.clone().iuor(this)},BN.prototype.iuand=function(num){var b=this.length>num.length?num:this;for(var i=0;inum.length?this.clone().iand(num):num.clone().iand(this)},BN.prototype.uand=function(num){return this.length>num.length?this.clone().iuand(num):num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;this.length>num.length?(a=this,b=num):(a=num,b=this);for(var i=0;inum.length?this.clone().ixor(num):num.clone().ixor(this)},BN.prototype.uxor=function(num){return this.length>num.length?this.clone().iuxor(num):num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert("number"==typeof width&&0<=width);var bytesNeeded=0|_Mathceil(width/26),bitsLeft=width%26;this._expand(bytesNeeded),0>26-bitsLeft),this._strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert("number"==typeof bit&&0<=bit);var off=0|bit/26,wbit=bit%26;return this._expand(off+1),val?this.words[off]|=1<num.length?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>>26;for(;0!==carry&&i>>26;if(this.length=a.length,0!==carry)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length?this.clone().iadd(num):num.clone().iadd(this)},BN.prototype.isub=function(num){if(0!==num.negative){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(0===cmp)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;0>26,this.words[i]=67108863&r;for(;0!==carry&&i>26,this.words[i]=67108863&r;if(0===carry&&i>>13,a1=0|a[1],al1=8191&a1,ah1=a1>>>13,a2=0|a[2],al2=8191&a2,ah2=a2>>>13,a3=0|a[3],al3=8191&a3,ah3=a3>>>13,a4=0|a[4],al4=8191&a4,ah4=a4>>>13,a5=0|a[5],al5=8191&a5,ah5=a5>>>13,a6=0|a[6],al6=8191&a6,ah6=a6>>>13,a7=0|a[7],al7=8191&a7,ah7=a7>>>13,a8=0|a[8],al8=8191&a8,ah8=a8>>>13,a9=0|a[9],al9=8191&a9,ah9=a9>>>13,b0=0|b[0],bl0=8191&b0,bh0=b0>>>13,b1=0|b[1],bl1=8191&b1,bh1=b1>>>13,b2=0|b[2],bl2=8191&b2,bh2=b2>>>13,b3=0|b[3],bl3=8191&b3,bh3=b3>>>13,b4=0|b[4],bl4=8191&b4,bh4=b4>>>13,b5=0|b[5],bl5=8191&b5,bh5=b5>>>13,b6=0|b[6],bl6=8191&b6,bh6=b6>>>13,b7=0|b[7],bl7=8191&b7,bh7=b7>>>13,b8=0|b[8],bl8=8191&b8,bh8=b8>>>13,b9=0|b[9],bl9=8191&b9,bh9=b9>>>13,lo,mid,hi;out.negative=self.negative^num.negative,out.length=19,lo=_Mathimul(al0,bl0),mid=_Mathimul(al0,bh0),mid=0|mid+_Mathimul(ah0,bl0),hi=_Mathimul(ah0,bh0);var w0=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w0>>>26),w0&=67108863,lo=_Mathimul(al1,bl0),mid=_Mathimul(al1,bh0),mid=0|mid+_Mathimul(ah1,bl0),hi=_Mathimul(ah1,bh0),lo=0|lo+_Mathimul(al0,bl1),mid=0|mid+_Mathimul(al0,bh1),mid=0|mid+_Mathimul(ah0,bl1),hi=0|hi+_Mathimul(ah0,bh1);var w1=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w1>>>26),w1&=67108863,lo=_Mathimul(al2,bl0),mid=_Mathimul(al2,bh0),mid=0|mid+_Mathimul(ah2,bl0),hi=_Mathimul(ah2,bh0),lo=0|lo+_Mathimul(al1,bl1),mid=0|mid+_Mathimul(al1,bh1),mid=0|mid+_Mathimul(ah1,bl1),hi=0|hi+_Mathimul(ah1,bh1),lo=0|lo+_Mathimul(al0,bl2),mid=0|mid+_Mathimul(al0,bh2),mid=0|mid+_Mathimul(ah0,bl2),hi=0|hi+_Mathimul(ah0,bh2);var w2=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w2>>>26),w2&=67108863,lo=_Mathimul(al3,bl0),mid=_Mathimul(al3,bh0),mid=0|mid+_Mathimul(ah3,bl0),hi=_Mathimul(ah3,bh0),lo=0|lo+_Mathimul(al2,bl1),mid=0|mid+_Mathimul(al2,bh1),mid=0|mid+_Mathimul(ah2,bl1),hi=0|hi+_Mathimul(ah2,bh1),lo=0|lo+_Mathimul(al1,bl2),mid=0|mid+_Mathimul(al1,bh2),mid=0|mid+_Mathimul(ah1,bl2),hi=0|hi+_Mathimul(ah1,bh2),lo=0|lo+_Mathimul(al0,bl3),mid=0|mid+_Mathimul(al0,bh3),mid=0|mid+_Mathimul(ah0,bl3),hi=0|hi+_Mathimul(ah0,bh3);var w3=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w3>>>26),w3&=67108863,lo=_Mathimul(al4,bl0),mid=_Mathimul(al4,bh0),mid=0|mid+_Mathimul(ah4,bl0),hi=_Mathimul(ah4,bh0),lo=0|lo+_Mathimul(al3,bl1),mid=0|mid+_Mathimul(al3,bh1),mid=0|mid+_Mathimul(ah3,bl1),hi=0|hi+_Mathimul(ah3,bh1),lo=0|lo+_Mathimul(al2,bl2),mid=0|mid+_Mathimul(al2,bh2),mid=0|mid+_Mathimul(ah2,bl2),hi=0|hi+_Mathimul(ah2,bh2),lo=0|lo+_Mathimul(al1,bl3),mid=0|mid+_Mathimul(al1,bh3),mid=0|mid+_Mathimul(ah1,bl3),hi=0|hi+_Mathimul(ah1,bh3),lo=0|lo+_Mathimul(al0,bl4),mid=0|mid+_Mathimul(al0,bh4),mid=0|mid+_Mathimul(ah0,bl4),hi=0|hi+_Mathimul(ah0,bh4);var w4=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w4>>>26),w4&=67108863,lo=_Mathimul(al5,bl0),mid=_Mathimul(al5,bh0),mid=0|mid+_Mathimul(ah5,bl0),hi=_Mathimul(ah5,bh0),lo=0|lo+_Mathimul(al4,bl1),mid=0|mid+_Mathimul(al4,bh1),mid=0|mid+_Mathimul(ah4,bl1),hi=0|hi+_Mathimul(ah4,bh1),lo=0|lo+_Mathimul(al3,bl2),mid=0|mid+_Mathimul(al3,bh2),mid=0|mid+_Mathimul(ah3,bl2),hi=0|hi+_Mathimul(ah3,bh2),lo=0|lo+_Mathimul(al2,bl3),mid=0|mid+_Mathimul(al2,bh3),mid=0|mid+_Mathimul(ah2,bl3),hi=0|hi+_Mathimul(ah2,bh3),lo=0|lo+_Mathimul(al1,bl4),mid=0|mid+_Mathimul(al1,bh4),mid=0|mid+_Mathimul(ah1,bl4),hi=0|hi+_Mathimul(ah1,bh4),lo=0|lo+_Mathimul(al0,bl5),mid=0|mid+_Mathimul(al0,bh5),mid=0|mid+_Mathimul(ah0,bl5),hi=0|hi+_Mathimul(ah0,bh5);var w5=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w5>>>26),w5&=67108863,lo=_Mathimul(al6,bl0),mid=_Mathimul(al6,bh0),mid=0|mid+_Mathimul(ah6,bl0),hi=_Mathimul(ah6,bh0),lo=0|lo+_Mathimul(al5,bl1),mid=0|mid+_Mathimul(al5,bh1),mid=0|mid+_Mathimul(ah5,bl1),hi=0|hi+_Mathimul(ah5,bh1),lo=0|lo+_Mathimul(al4,bl2),mid=0|mid+_Mathimul(al4,bh2),mid=0|mid+_Mathimul(ah4,bl2),hi=0|hi+_Mathimul(ah4,bh2),lo=0|lo+_Mathimul(al3,bl3),mid=0|mid+_Mathimul(al3,bh3),mid=0|mid+_Mathimul(ah3,bl3),hi=0|hi+_Mathimul(ah3,bh3),lo=0|lo+_Mathimul(al2,bl4),mid=0|mid+_Mathimul(al2,bh4),mid=0|mid+_Mathimul(ah2,bl4),hi=0|hi+_Mathimul(ah2,bh4),lo=0|lo+_Mathimul(al1,bl5),mid=0|mid+_Mathimul(al1,bh5),mid=0|mid+_Mathimul(ah1,bl5),hi=0|hi+_Mathimul(ah1,bh5),lo=0|lo+_Mathimul(al0,bl6),mid=0|mid+_Mathimul(al0,bh6),mid=0|mid+_Mathimul(ah0,bl6),hi=0|hi+_Mathimul(ah0,bh6);var w6=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w6>>>26),w6&=67108863,lo=_Mathimul(al7,bl0),mid=_Mathimul(al7,bh0),mid=0|mid+_Mathimul(ah7,bl0),hi=_Mathimul(ah7,bh0),lo=0|lo+_Mathimul(al6,bl1),mid=0|mid+_Mathimul(al6,bh1),mid=0|mid+_Mathimul(ah6,bl1),hi=0|hi+_Mathimul(ah6,bh1),lo=0|lo+_Mathimul(al5,bl2),mid=0|mid+_Mathimul(al5,bh2),mid=0|mid+_Mathimul(ah5,bl2),hi=0|hi+_Mathimul(ah5,bh2),lo=0|lo+_Mathimul(al4,bl3),mid=0|mid+_Mathimul(al4,bh3),mid=0|mid+_Mathimul(ah4,bl3),hi=0|hi+_Mathimul(ah4,bh3),lo=0|lo+_Mathimul(al3,bl4),mid=0|mid+_Mathimul(al3,bh4),mid=0|mid+_Mathimul(ah3,bl4),hi=0|hi+_Mathimul(ah3,bh4),lo=0|lo+_Mathimul(al2,bl5),mid=0|mid+_Mathimul(al2,bh5),mid=0|mid+_Mathimul(ah2,bl5),hi=0|hi+_Mathimul(ah2,bh5),lo=0|lo+_Mathimul(al1,bl6),mid=0|mid+_Mathimul(al1,bh6),mid=0|mid+_Mathimul(ah1,bl6),hi=0|hi+_Mathimul(ah1,bh6),lo=0|lo+_Mathimul(al0,bl7),mid=0|mid+_Mathimul(al0,bh7),mid=0|mid+_Mathimul(ah0,bl7),hi=0|hi+_Mathimul(ah0,bh7);var w7=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w7>>>26),w7&=67108863,lo=_Mathimul(al8,bl0),mid=_Mathimul(al8,bh0),mid=0|mid+_Mathimul(ah8,bl0),hi=_Mathimul(ah8,bh0),lo=0|lo+_Mathimul(al7,bl1),mid=0|mid+_Mathimul(al7,bh1),mid=0|mid+_Mathimul(ah7,bl1),hi=0|hi+_Mathimul(ah7,bh1),lo=0|lo+_Mathimul(al6,bl2),mid=0|mid+_Mathimul(al6,bh2),mid=0|mid+_Mathimul(ah6,bl2),hi=0|hi+_Mathimul(ah6,bh2),lo=0|lo+_Mathimul(al5,bl3),mid=0|mid+_Mathimul(al5,bh3),mid=0|mid+_Mathimul(ah5,bl3),hi=0|hi+_Mathimul(ah5,bh3),lo=0|lo+_Mathimul(al4,bl4),mid=0|mid+_Mathimul(al4,bh4),mid=0|mid+_Mathimul(ah4,bl4),hi=0|hi+_Mathimul(ah4,bh4),lo=0|lo+_Mathimul(al3,bl5),mid=0|mid+_Mathimul(al3,bh5),mid=0|mid+_Mathimul(ah3,bl5),hi=0|hi+_Mathimul(ah3,bh5),lo=0|lo+_Mathimul(al2,bl6),mid=0|mid+_Mathimul(al2,bh6),mid=0|mid+_Mathimul(ah2,bl6),hi=0|hi+_Mathimul(ah2,bh6),lo=0|lo+_Mathimul(al1,bl7),mid=0|mid+_Mathimul(al1,bh7),mid=0|mid+_Mathimul(ah1,bl7),hi=0|hi+_Mathimul(ah1,bh7),lo=0|lo+_Mathimul(al0,bl8),mid=0|mid+_Mathimul(al0,bh8),mid=0|mid+_Mathimul(ah0,bl8),hi=0|hi+_Mathimul(ah0,bh8);var w8=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w8>>>26),w8&=67108863,lo=_Mathimul(al9,bl0),mid=_Mathimul(al9,bh0),mid=0|mid+_Mathimul(ah9,bl0),hi=_Mathimul(ah9,bh0),lo=0|lo+_Mathimul(al8,bl1),mid=0|mid+_Mathimul(al8,bh1),mid=0|mid+_Mathimul(ah8,bl1),hi=0|hi+_Mathimul(ah8,bh1),lo=0|lo+_Mathimul(al7,bl2),mid=0|mid+_Mathimul(al7,bh2),mid=0|mid+_Mathimul(ah7,bl2),hi=0|hi+_Mathimul(ah7,bh2),lo=0|lo+_Mathimul(al6,bl3),mid=0|mid+_Mathimul(al6,bh3),mid=0|mid+_Mathimul(ah6,bl3),hi=0|hi+_Mathimul(ah6,bh3),lo=0|lo+_Mathimul(al5,bl4),mid=0|mid+_Mathimul(al5,bh4),mid=0|mid+_Mathimul(ah5,bl4),hi=0|hi+_Mathimul(ah5,bh4),lo=0|lo+_Mathimul(al4,bl5),mid=0|mid+_Mathimul(al4,bh5),mid=0|mid+_Mathimul(ah4,bl5),hi=0|hi+_Mathimul(ah4,bh5),lo=0|lo+_Mathimul(al3,bl6),mid=0|mid+_Mathimul(al3,bh6),mid=0|mid+_Mathimul(ah3,bl6),hi=0|hi+_Mathimul(ah3,bh6),lo=0|lo+_Mathimul(al2,bl7),mid=0|mid+_Mathimul(al2,bh7),mid=0|mid+_Mathimul(ah2,bl7),hi=0|hi+_Mathimul(ah2,bh7),lo=0|lo+_Mathimul(al1,bl8),mid=0|mid+_Mathimul(al1,bh8),mid=0|mid+_Mathimul(ah1,bl8),hi=0|hi+_Mathimul(ah1,bh8),lo=0|lo+_Mathimul(al0,bl9),mid=0|mid+_Mathimul(al0,bh9),mid=0|mid+_Mathimul(ah0,bl9),hi=0|hi+_Mathimul(ah0,bh9);var w9=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w9>>>26),w9&=67108863,lo=_Mathimul(al9,bl1),mid=_Mathimul(al9,bh1),mid=0|mid+_Mathimul(ah9,bl1),hi=_Mathimul(ah9,bh1),lo=0|lo+_Mathimul(al8,bl2),mid=0|mid+_Mathimul(al8,bh2),mid=0|mid+_Mathimul(ah8,bl2),hi=0|hi+_Mathimul(ah8,bh2),lo=0|lo+_Mathimul(al7,bl3),mid=0|mid+_Mathimul(al7,bh3),mid=0|mid+_Mathimul(ah7,bl3),hi=0|hi+_Mathimul(ah7,bh3),lo=0|lo+_Mathimul(al6,bl4),mid=0|mid+_Mathimul(al6,bh4),mid=0|mid+_Mathimul(ah6,bl4),hi=0|hi+_Mathimul(ah6,bh4),lo=0|lo+_Mathimul(al5,bl5),mid=0|mid+_Mathimul(al5,bh5),mid=0|mid+_Mathimul(ah5,bl5),hi=0|hi+_Mathimul(ah5,bh5),lo=0|lo+_Mathimul(al4,bl6),mid=0|mid+_Mathimul(al4,bh6),mid=0|mid+_Mathimul(ah4,bl6),hi=0|hi+_Mathimul(ah4,bh6),lo=0|lo+_Mathimul(al3,bl7),mid=0|mid+_Mathimul(al3,bh7),mid=0|mid+_Mathimul(ah3,bl7),hi=0|hi+_Mathimul(ah3,bh7),lo=0|lo+_Mathimul(al2,bl8),mid=0|mid+_Mathimul(al2,bh8),mid=0|mid+_Mathimul(ah2,bl8),hi=0|hi+_Mathimul(ah2,bh8),lo=0|lo+_Mathimul(al1,bl9),mid=0|mid+_Mathimul(al1,bh9),mid=0|mid+_Mathimul(ah1,bl9),hi=0|hi+_Mathimul(ah1,bh9);var w10=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w10>>>26),w10&=67108863,lo=_Mathimul(al9,bl2),mid=_Mathimul(al9,bh2),mid=0|mid+_Mathimul(ah9,bl2),hi=_Mathimul(ah9,bh2),lo=0|lo+_Mathimul(al8,bl3),mid=0|mid+_Mathimul(al8,bh3),mid=0|mid+_Mathimul(ah8,bl3),hi=0|hi+_Mathimul(ah8,bh3),lo=0|lo+_Mathimul(al7,bl4),mid=0|mid+_Mathimul(al7,bh4),mid=0|mid+_Mathimul(ah7,bl4),hi=0|hi+_Mathimul(ah7,bh4),lo=0|lo+_Mathimul(al6,bl5),mid=0|mid+_Mathimul(al6,bh5),mid=0|mid+_Mathimul(ah6,bl5),hi=0|hi+_Mathimul(ah6,bh5),lo=0|lo+_Mathimul(al5,bl6),mid=0|mid+_Mathimul(al5,bh6),mid=0|mid+_Mathimul(ah5,bl6),hi=0|hi+_Mathimul(ah5,bh6),lo=0|lo+_Mathimul(al4,bl7),mid=0|mid+_Mathimul(al4,bh7),mid=0|mid+_Mathimul(ah4,bl7),hi=0|hi+_Mathimul(ah4,bh7),lo=0|lo+_Mathimul(al3,bl8),mid=0|mid+_Mathimul(al3,bh8),mid=0|mid+_Mathimul(ah3,bl8),hi=0|hi+_Mathimul(ah3,bh8),lo=0|lo+_Mathimul(al2,bl9),mid=0|mid+_Mathimul(al2,bh9),mid=0|mid+_Mathimul(ah2,bl9),hi=0|hi+_Mathimul(ah2,bh9);var w11=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w11>>>26),w11&=67108863,lo=_Mathimul(al9,bl3),mid=_Mathimul(al9,bh3),mid=0|mid+_Mathimul(ah9,bl3),hi=_Mathimul(ah9,bh3),lo=0|lo+_Mathimul(al8,bl4),mid=0|mid+_Mathimul(al8,bh4),mid=0|mid+_Mathimul(ah8,bl4),hi=0|hi+_Mathimul(ah8,bh4),lo=0|lo+_Mathimul(al7,bl5),mid=0|mid+_Mathimul(al7,bh5),mid=0|mid+_Mathimul(ah7,bl5),hi=0|hi+_Mathimul(ah7,bh5),lo=0|lo+_Mathimul(al6,bl6),mid=0|mid+_Mathimul(al6,bh6),mid=0|mid+_Mathimul(ah6,bl6),hi=0|hi+_Mathimul(ah6,bh6),lo=0|lo+_Mathimul(al5,bl7),mid=0|mid+_Mathimul(al5,bh7),mid=0|mid+_Mathimul(ah5,bl7),hi=0|hi+_Mathimul(ah5,bh7),lo=0|lo+_Mathimul(al4,bl8),mid=0|mid+_Mathimul(al4,bh8),mid=0|mid+_Mathimul(ah4,bl8),hi=0|hi+_Mathimul(ah4,bh8),lo=0|lo+_Mathimul(al3,bl9),mid=0|mid+_Mathimul(al3,bh9),mid=0|mid+_Mathimul(ah3,bl9),hi=0|hi+_Mathimul(ah3,bh9);var w12=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w12>>>26),w12&=67108863,lo=_Mathimul(al9,bl4),mid=_Mathimul(al9,bh4),mid=0|mid+_Mathimul(ah9,bl4),hi=_Mathimul(ah9,bh4),lo=0|lo+_Mathimul(al8,bl5),mid=0|mid+_Mathimul(al8,bh5),mid=0|mid+_Mathimul(ah8,bl5),hi=0|hi+_Mathimul(ah8,bh5),lo=0|lo+_Mathimul(al7,bl6),mid=0|mid+_Mathimul(al7,bh6),mid=0|mid+_Mathimul(ah7,bl6),hi=0|hi+_Mathimul(ah7,bh6),lo=0|lo+_Mathimul(al6,bl7),mid=0|mid+_Mathimul(al6,bh7),mid=0|mid+_Mathimul(ah6,bl7),hi=0|hi+_Mathimul(ah6,bh7),lo=0|lo+_Mathimul(al5,bl8),mid=0|mid+_Mathimul(al5,bh8),mid=0|mid+_Mathimul(ah5,bl8),hi=0|hi+_Mathimul(ah5,bh8),lo=0|lo+_Mathimul(al4,bl9),mid=0|mid+_Mathimul(al4,bh9),mid=0|mid+_Mathimul(ah4,bl9),hi=0|hi+_Mathimul(ah4,bh9);var w13=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w13>>>26),w13&=67108863,lo=_Mathimul(al9,bl5),mid=_Mathimul(al9,bh5),mid=0|mid+_Mathimul(ah9,bl5),hi=_Mathimul(ah9,bh5),lo=0|lo+_Mathimul(al8,bl6),mid=0|mid+_Mathimul(al8,bh6),mid=0|mid+_Mathimul(ah8,bl6),hi=0|hi+_Mathimul(ah8,bh6),lo=0|lo+_Mathimul(al7,bl7),mid=0|mid+_Mathimul(al7,bh7),mid=0|mid+_Mathimul(ah7,bl7),hi=0|hi+_Mathimul(ah7,bh7),lo=0|lo+_Mathimul(al6,bl8),mid=0|mid+_Mathimul(al6,bh8),mid=0|mid+_Mathimul(ah6,bl8),hi=0|hi+_Mathimul(ah6,bh8),lo=0|lo+_Mathimul(al5,bl9),mid=0|mid+_Mathimul(al5,bh9),mid=0|mid+_Mathimul(ah5,bl9),hi=0|hi+_Mathimul(ah5,bh9);var w14=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w14>>>26),w14&=67108863,lo=_Mathimul(al9,bl6),mid=_Mathimul(al9,bh6),mid=0|mid+_Mathimul(ah9,bl6),hi=_Mathimul(ah9,bh6),lo=0|lo+_Mathimul(al8,bl7),mid=0|mid+_Mathimul(al8,bh7),mid=0|mid+_Mathimul(ah8,bl7),hi=0|hi+_Mathimul(ah8,bh7),lo=0|lo+_Mathimul(al7,bl8),mid=0|mid+_Mathimul(al7,bh8),mid=0|mid+_Mathimul(ah7,bl8),hi=0|hi+_Mathimul(ah7,bh8),lo=0|lo+_Mathimul(al6,bl9),mid=0|mid+_Mathimul(al6,bh9),mid=0|mid+_Mathimul(ah6,bl9),hi=0|hi+_Mathimul(ah6,bh9);var w15=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w15>>>26),w15&=67108863,lo=_Mathimul(al9,bl7),mid=_Mathimul(al9,bh7),mid=0|mid+_Mathimul(ah9,bl7),hi=_Mathimul(ah9,bh7),lo=0|lo+_Mathimul(al8,bl8),mid=0|mid+_Mathimul(al8,bh8),mid=0|mid+_Mathimul(ah8,bl8),hi=0|hi+_Mathimul(ah8,bh8),lo=0|lo+_Mathimul(al7,bl9),mid=0|mid+_Mathimul(al7,bh9),mid=0|mid+_Mathimul(ah7,bl9),hi=0|hi+_Mathimul(ah7,bh9);var w16=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w16>>>26),w16&=67108863,lo=_Mathimul(al9,bl8),mid=_Mathimul(al9,bh8),mid=0|mid+_Mathimul(ah9,bl8),hi=_Mathimul(ah9,bh8),lo=0|lo+_Mathimul(al8,bl9),mid=0|mid+_Mathimul(al8,bh9),mid=0|mid+_Mathimul(ah8,bl9),hi=0|hi+_Mathimul(ah8,bh9);var w17=0|(0|c+lo)+((8191&mid)<<13);c=0|(0|hi+(mid>>>13))+(w17>>>26),w17&=67108863,lo=_Mathimul(al9,bl9),mid=_Mathimul(al9,bh9),mid=0|mid+_Mathimul(ah9,bl9),hi=_Mathimul(ah9,bh9);var w18=0|(0|c+lo)+((8191&mid)<<13);return c=0|(0|hi+(mid>>>13))+(w18>>>26),w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,0!==c&&(o[19]=c,out.length++),out};_Mathimul||(comb10MulTo=smallMulTo),BN.prototype.mulTo=function(num,out){var len=this.length+num.length,res;return res=10===this.length&&10===num.length?comb10MulTo(this,num,out):63>len?smallMulTo(this,num,out):1024>len?bigMulTo(this,num,out):jumboMulTo(this,num,out),res},FFTM.prototype.makeRBT=function(N){for(var t=Array(N),l=BN.prototype._countBits(N)-1,i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>=1)i++;return 1<=N))for(var i=0,t;iw?0:0|w/67108864;return ws},FFTM.prototype.convert13b=function(ws,len,rws,N){for(var carry=0,i=0;i>>=13,rws[2*i+1]=8191&carry,carry>>>=13;for(i=2*len;inum;isNegNum&&(num=-num),assert("number"==typeof num),assert(67108864>num);for(var carry=0,i=0;i>=26,carry+=0|w/67108864,carry+=lo>>>26,this.words[i]=67108863&lo}return 0!==carry&&(this.words[i]=carry,this.length++),isNegNum?this.ineg():this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(0===w.length)return new BN(1);for(var res=this,i=0;i>>26-r<<26-r,c=(0|this.words[i])-newCarry<>>26-r}carry&&(this.words[i]=carry,this.length++)}if(0!==s){for(i=this.length-1;0<=i;i--)this.words[i+s]=this.words[i];for(i=0;is)for(this.length-=s,i=0;i=h);i--){var word=0|this.words[i];this.words[i]=carry<<26-r|word>>>r,carry=word&(67108863^67108863>>>r<>>r<num),0>num?this.isubn(-num):0===this.negative?this._iaddn(num):1===this.length&&(0|this.words[0])<=num?(this.words[0]=num-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(num),this.negative=1,this)},BN.prototype._iaddn=function(num){this.words[0]+=num;for(var i=0;inum),0>num)return this.iaddn(-num);if(0!==this.negative)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,1===this.length&&0>this.words[0])this.words[0]=-this.words[0],this.negative=1;else for(var i=0;ithis.words[i];i++)this.words[i]+=67108864,this.words[i+1]-=1;return this._strip()},BN.prototype.addn=function(num){return this.clone().iaddn(num)},BN.prototype.subn=function(num){return this.clone().isubn(num)},BN.prototype.iabs=function(){return this.negative=0,this},BN.prototype.abs=function(){return this.clone().iabs()},BN.prototype._ishlnsubmul=function(num,mul,shift){var len=num.length+shift,i;this._expand(len);var carry=0,w;for(i=0;i>26)-(0|right/67108864),this.words[i+shift]=67108863&w}for(;i>26,this.words[i+shift]=67108863&w;if(0===carry)return this._strip();for(assert(-1===carry),carry=0,i=0;i>26,this.words[i]=67108863&w;return this.negative=1,this._strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=0|b.words[b.length-1],bhiBits=this._countBits(bhi);shift=26-bhiBits,0!=shift&&(b=b.ushln(shift),a.iushln(shift),bhi=0|b.words[b.length-1]);var m=a.length-b.length,q;if("mod"!==mode){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;ithis.length||0>this.cmp(num)?{div:new BN(0),mod:this}:1===num.length?"div"===mode?{div:this.divn(num.words[0]),mod:null}:"mod"===mode?{div:null,mod:new BN(this.modrn(num.words[0]))}:{div:this.divn(num.words[0]),mod:new BN(this.modrn(num.words[0]))}:this._wordDiv(num,mode):(res=this.neg().divmod(num.neg(),mode),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.isub(num)),{div:res.div,mod:mod})},BN.prototype.div=function(num){return this.divmod(num,"div",!1).div},BN.prototype.mod=function(num){return this.divmod(num,"mod",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,"mod",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=0===dm.div.negative?dm.mod:dm.mod.isub(num),half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);return 0>cmp||1===r2&&0===cmp?dm.div:0===dm.div.negative?dm.div.iaddn(1):dm.div.isubn(1)},BN.prototype.modrn=function(num){var isNegNum=0>num;isNegNum&&(num=-num),assert(67108863>=num);for(var p=67108864%num,acc=0,i=this.length-1;0<=i;i--)acc=(p*acc+(0|this.words[i]))%num;return isNegNum?-acc:acc},BN.prototype.modn=function(num){return this.modrn(num)},BN.prototype.idivn=function(num){var isNegNum=0>num;isNegNum&&(num=-num),assert(67108863>=num);for(var carry=0,i=this.length-1,w;0<=i;i--)w=(0|this.words[i])+67108864*carry,this.words[i]=0|w/num,carry=w%num;return this._strip(),isNegNum?this.ineg():this},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(0===p.negative),assert(!p.isZero());var x=this,y=p.clone();x=0===x.negative?x.clone():x.umod(p);for(var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;x.isEven()&&y.isEven();)x.iushrn(1),y.iushrn(1),++g;for(var yp=y.clone(),xp=x.clone();!x.isZero();){for(var i=0,im=1;0==(x.words[0]&im)&&26>i;++i,im<<=1);if(0j;++j,jm<<=1);if(0i;++i,im<<=1);if(0j;++j,jm<<=1);if(0res.cmpn(0)&&res.iadd(p),res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{for(;a.isEven();)a.iushrn(1);for(;b.isEven();)b.iushrn(1);var r=a.cmp(b);if(0>r){var t=a;a=b,b=t}else if(0===r||0===b.cmpn(1))break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return 0==(1&this.words[0])},BN.prototype.isOdd=function(){return 1==(1&this.words[0])},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert("number"==typeof bit);var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w;return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function(num){var negative=0>num;if(0!==this.negative&&!negative)return-1;if(0===this.negative&&negative)return 1;this._strip();var res;if(1=num,"Number is too big");var w=0|this.words[0];res=w===num?0:wnum.length)return 1;if(this.lengthb&&(res=1);break}}return res},BN.prototype.gtn=function(num){return 1===this.cmpn(num)},BN.prototype.gt=function(num){return 1===this.cmp(num)},BN.prototype.gten=function(num){return 0<=this.cmpn(num)},BN.prototype.gte=function(num){return 0<=this.cmp(num)},BN.prototype.ltn=function(num){return-1===this.cmpn(num)},BN.prototype.lt=function(num){return-1===this.cmp(num)},BN.prototype.lten=function(num){return 0>=this.cmpn(num)},BN.prototype.lte=function(num){return 0>=this.cmp(num)},BN.prototype.eqn=function(num){return 0===this.cmpn(num)},BN.prototype.eq=function(num){return 0===this.cmp(num)},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(_Mathceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen=input.length)return input.words[0]=0,void(input.length=1);var prev=input.words[9];for(output.words[output.length++]=prev&mask,i=10;i>>22,prev=next}prev>>>=22,input.words[i-10]=prev,input.length-=0===prev&&10>>=26,num.words[i]=lo,carry=hi}return 0!==carry&&(num.words[num.length++]=carry),num},BN._prime=function prime(name){if(primes[name])return primes[name];var prime;if("k256"===name)prime=new K256;else if("p224"===name)prime=new P224;else if("p192"===name)prime=new P192;else if("p25519"===name)prime=new P25519;else throw new Error("Unknown prime "+name);return primes[name]=prime,prime},Red.prototype._verify1=function(a){assert(0===a.negative,"red works only with positives"),assert(a.red,"red works only with red numbers")},Red.prototype._verify2=function(a,b){assert(0==(a.negative|b.negative),"red works only with positives"),assert(a.red&&a.red===b.red,"red works only with red numbers")},Red.prototype.imod=function(a){return this.prime?this.prime.ireduce(a)._forceRed(this):(move(a,a.umod(this.m)._forceRed(this)),a)},Red.prototype.neg=function(a){return a.isZero()?a.clone():this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);return 0<=res.cmp(this.m)&&res.isub(this.m),res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);return 0<=res.cmp(this.m)&&res.isub(this.m),res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);return 0>res.cmpn(0)&&res.iadd(this.m),res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);return 0>res.cmpn(0)&&res.iadd(this.m),res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(1==mod3%2),3===mod3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}for(var q=this.m.subn(1),s=0;!q.isZero()&&0===q.andln(1);)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();for(z=new BN(2*z*z).toRed(this);0!==this.pow(z,lpow).cmp(nOne);)z.redIAdd(nOne);for(var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;0!==t.cmp(one);){for(var tmp=t,i=0;0!==tmp.cmp(one);i++)tmp=tmp.redSqr();assert(i>j,res!==wnd[0]&&(res=this.sqr(res)),0===bit&&0===current){currentLen=0;continue}current<<=1,current|=bit,currentLen++,(4===currentLen||0===i&&0===j)&&(res=this.mul(res,wnd[current]),currentLen=0,current=0)}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)},inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return 0<=u.cmp(this.m)?res=u.isub(this.m):0>u.cmpn(0)&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return 0<=u.cmp(this.m)?res=u.isub(this.m):0>u.cmpn(0)&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})("undefined"==typeof module||module,this)},{buffer:41}],40:[function(require,module){function Rand(rand){this.rand=rand}var r;if(module.exports=function(len){return r||(r=new Rand(null)),r.generate(len)},module.exports.Rand=Rand,Rand.prototype.generate=function(len){return this._rand(len)},Rand.prototype._rand=function(n){if(this.rand.getBytes)return this.rand.getBytes(n);for(var res=new Uint8Array(n),i=0;i>>24]^SUB_MIX1[255&s1>>>16]^SUB_MIX2[255&s2>>>8]^SUB_MIX3[255&s3]^keySchedule[ksRow++],t1=SUB_MIX0[s1>>>24]^SUB_MIX1[255&s2>>>16]^SUB_MIX2[255&s3>>>8]^SUB_MIX3[255&s0]^keySchedule[ksRow++],t2=SUB_MIX0[s2>>>24]^SUB_MIX1[255&s3>>>16]^SUB_MIX2[255&s0>>>8]^SUB_MIX3[255&s1]^keySchedule[ksRow++],t3=SUB_MIX0[s3>>>24]^SUB_MIX1[255&s0>>>16]^SUB_MIX2[255&s1>>>8]^SUB_MIX3[255&s2]^keySchedule[ksRow++],s0=t0,s1=t1,s2=t2,s3=t3;return t0=(SBOX[s0>>>24]<<24|SBOX[255&s1>>>16]<<16|SBOX[255&s2>>>8]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[255&s2>>>16]<<16|SBOX[255&s3>>>8]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[255&s3>>>16]<<16|SBOX[255&s0>>>8]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[255&s0>>>16]<<16|SBOX[255&s1>>>8]<<8|SBOX[255&s2])^keySchedule[ksRow++],t0>>>=0,t1>>>=0,t2>>>=0,t3>>>=0,[t0,t1,t2,t3]}function AES(key){this._key=asUInt32Array(key),this._reset()}var Buffer=require("safe-buffer").Buffer,RCON=[0,1,2,4,8,16,32,64,128,27,54],G=function(){for(var d=Array(256),j=0;256>j;j++)d[j]=128>j?j<<1:283^j<<1;for(var SBOX=[],INV_SBOX=[],SUB_MIX=[[],[],[],[]],INV_SUB_MIX=[[],[],[],[]],x=0,xi=0,i=0,sx;256>i;++i){sx=xi^xi<<1^xi<<2^xi<<3^xi<<4,sx=99^(sx>>>8^255&sx),SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;SUB_MIX[0][x]=t<<24|t>>>8,SUB_MIX[1][x]=t<<16|t>>>16,SUB_MIX[2][x]=t<<8|t>>>24,SUB_MIX[3][x]=t,t=16843009*x8^65537*x4^257*x2^16843008*x,INV_SUB_MIX[0][sx]=t<<24|t>>>8,INV_SUB_MIX[1][sx]=t<<16|t>>>16,INV_SUB_MIX[2][sx]=t<<8|t>>>24,INV_SUB_MIX[3][sx]=t,0===x?x=xi=1:(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]])}return{SBOX:SBOX,INV_SBOX:INV_SBOX,SUB_MIX:SUB_MIX,INV_SUB_MIX:INV_SUB_MIX}}();AES.blockSize=16,AES.keySize=32,AES.prototype.blockSize=AES.blockSize,AES.prototype.keySize=AES.keySize,AES.prototype._reset=function(){for(var keyWords=this._key,keySize=keyWords.length,nRounds=keySize+6,ksRows=4*(nRounds+1),keySchedule=[],k=0;k>>24,t=G.SBOX[t>>>24]<<24|G.SBOX[255&t>>>16]<<16|G.SBOX[255&t>>>8]<<8|G.SBOX[255&t],t^=RCON[0|k/keySize]<<24):6>>24]<<24|G.SBOX[255&t>>>16]<<16|G.SBOX[255&t>>>8]<<8|G.SBOX[255&t]),keySchedule[k]=keySchedule[k-keySize]^t}for(var invKeySchedule=[],ik=0;ikik||4>=ksR?tt:G.INV_SUB_MIX[0][G.SBOX[tt>>>24]]^G.INV_SUB_MIX[1][G.SBOX[255&tt>>>16]]^G.INV_SUB_MIX[2][G.SBOX[255&tt>>>8]]^G.INV_SUB_MIX[3][G.SBOX[255&tt]]}this._nRounds=nRounds,this._keySchedule=keySchedule,this._invKeySchedule=invKeySchedule},AES.prototype.encryptBlockRaw=function(M){return M=asUInt32Array(M),cryptBlock(M,this._keySchedule,G.SUB_MIX,G.SBOX,this._nRounds)},AES.prototype.encryptBlock=function(M){var out=this.encryptBlockRaw(M),buf=Buffer.allocUnsafe(16);return buf.writeUInt32BE(out[0],0),buf.writeUInt32BE(out[1],4),buf.writeUInt32BE(out[2],8),buf.writeUInt32BE(out[3],12),buf},AES.prototype.decryptBlock=function(M){M=asUInt32Array(M);var m1=M[1];M[1]=M[3],M[3]=m1;var out=cryptBlock(M,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX,this._nRounds),buf=Buffer.allocUnsafe(16);return buf.writeUInt32BE(out[0],0),buf.writeUInt32BE(out[3],4),buf.writeUInt32BE(out[2],8),buf.writeUInt32BE(out[1],12),buf},AES.prototype.scrub=function(){scrubVec(this._keySchedule),scrubVec(this._invKeySchedule),scrubVec(this._key)},module.exports.AES=AES},{"safe-buffer":247}],43:[function(require,module){function xorTest(a,b){var out=0;a.length!==b.length&&out++;for(var len=_Mathmin(a.length,b.length),i=0;irump&&(rump=Buffer.alloc(rump,0),this._ghash.update(rump))}this._called=!0;var out=this._mode.encrypt(this,chunk);return this._decrypt?this._ghash.update(chunk):this._ghash.update(out),this._len+=chunk.length,out},StreamCipher.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var tag=xor(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&xorTest(tag,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=tag,this._cipher.scrub()},StreamCipher.prototype.getAuthTag=function(){if(this._decrypt||!Buffer.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},StreamCipher.prototype.setAuthTag=function(tag){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=tag},StreamCipher.prototype.setAAD=function(buf){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(buf),this._alen+=buf.length},module.exports=StreamCipher},{"./aes":42,"./ghash":47,"./incr32":48,"buffer-xor":90,"cipher-base":94,inherits:159,"safe-buffer":247}],44:[function(require,module,exports){var ciphers=require("./encrypter"),deciphers=require("./decrypter"),modes=require("./modes/list.json");exports.createCipher=exports.Cipher=ciphers.createCipher,exports.createCipheriv=exports.Cipheriv=ciphers.createCipheriv,exports.createDecipher=exports.Decipher=deciphers.createDecipher,exports.createDecipheriv=exports.Decipheriv=deciphers.createDecipheriv,exports.listCiphers=exports.getCiphers=function(){return Object.keys(modes)}},{"./decrypter":45,"./encrypter":46,"./modes/list.json":56}],45:[function(require,module,exports){function Decipher(mode,key,iv){Transform.call(this),this._cache=new Splitter,this._last=void 0,this._cipher=new aes.AES(key),this._prev=Buffer.from(iv),this._mode=mode,this._autopadding=!0}function Splitter(){this.cache=Buffer.allocUnsafe(0)}function unpad(last){var padded=last[15];if(1>padded||16>>0,0),buf.writeUInt32BE(out[1]>>>0,4),buf.writeUInt32BE(out[2]>>>0,8),buf.writeUInt32BE(out[3]>>>0,12),buf}function GHASH(key){this.h=key,this.state=Buffer.alloc(16,0),this.cache=Buffer.allocUnsafe(0)}var Buffer=require("safe-buffer").Buffer,ZEROES=Buffer.alloc(16,0);GHASH.prototype.ghash=function(block){for(var i=-1;++i++i;){for(xi=0!=(this.state[~~(i/8)]&1<<7-i%8),xi&&(Zi[0]^=Vi[0],Zi[1]^=Vi[1],Zi[2]^=Vi[2],Zi[3]^=Vi[3]),lsbVi=0!=(1&Vi[3]),j=3;0>>1|(1&Vi[j-1])<<31;Vi[0]>>>=1,lsbVi&&(Vi[0]^=-520093696)}this.state=fromArray(Zi)},GHASH.prototype.update=function(buf){this.cache=Buffer.concat([this.cache,buf]);for(var chunk;16<=this.cache.length;)chunk=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(chunk)},GHASH.prototype.final=function(abl,bl){return this.cache.length&&this.ghash(Buffer.concat([this.cache,ZEROES],16)),this.ghash(fromArray([0,abl,0,bl])),this.state},module.exports=GHASH},{"safe-buffer":247}],48:[function(require,module){module.exports=function(iv){for(var len=iv.length,item;len--;)if(item=iv.readUInt8(len),255===item)iv.writeUInt8(0,len);else{item++,iv.writeUInt8(item,len);break}}},{}],49:[function(require,module,exports){var xor=require("buffer-xor");exports.encrypt=function(self,block){var data=xor(block,self._prev);return self._prev=self._cipher.encryptBlock(data),self._prev},exports.decrypt=function(self,block){var pad=self._prev;self._prev=block;var out=self._cipher.decryptBlock(block);return xor(out,pad)}},{"buffer-xor":90}],50:[function(require,module,exports){function encryptStart(self,data,decrypt){var len=data.length,out=xor(data,self._cache);return self._cache=self._cache.slice(len),self._prev=Buffer.concat([self._prev,decrypt?data:out]),out}var Buffer=require("safe-buffer").Buffer,xor=require("buffer-xor");exports.encrypt=function(self,data,decrypt){for(var out=Buffer.allocUnsafe(0),len;data.length;)if(0===self._cache.length&&(self._cache=self._cipher.encryptBlock(self._prev),self._prev=Buffer.allocUnsafe(0)),self._cache.length<=data.length)len=self._cache.length,out=Buffer.concat([out,encryptStart(self,data.slice(0,len),decrypt)]),data=data.slice(len);else{out=Buffer.concat([out,encryptStart(self,data,decrypt)]);break}return out}},{"buffer-xor":90,"safe-buffer":247}],51:[function(require,module,exports){function encryptByte(self,byteParam,decrypt){for(var i=-1,out=0,pad,bit,value;++i<8;)pad=self._cipher.encryptBlock(self._prev),bit=byteParam&1<<7-i?128:0,value=pad[0]^bit,out+=(128&value)>>i%8,self._prev=shiftIn(self._prev,decrypt?bit:value);return out}function shiftIn(buffer,value){var len=buffer.length,i=-1,out=Buffer.allocUnsafe(buffer.length);for(buffer=Buffer.concat([buffer,Buffer.from([value])]);++i>7;return out}var Buffer=require("safe-buffer").Buffer;exports.encrypt=function(self,chunk,decrypt){for(var len=chunk.length,out=Buffer.allocUnsafe(len),i=-1;++i=b.cmpn(0))throw new Error("invalid sig");if(b.cmp(q)>=q)throw new Error("invalid sig")}var Buffer=require("safe-buffer").Buffer,BN=require("bn.js"),EC=require("elliptic").ec,parseKeys=require("parse-asn1"),curves=require("./curves.json");module.exports=function(sig,hash,key,signType,tag){var pub=parseKeys(key);if("ec"===pub.type){if("ecdsa"!==signType&&"ecdsa/rsa"!==signType)throw new Error("wrong public key type");return ecVerify(sig,hash,pub)}if("dsa"===pub.type){if("dsa"!==signType)throw new Error("wrong public key type");return dsaVerify(sig,hash,pub)}if("rsa"!==signType&&"ecdsa/rsa"!==signType)throw new Error("wrong public key type");hash=Buffer.concat([tag,hash]);for(var len=pub.modulus.byteLength(),pad=[1],padNum=0;hash.length+pad.length+2padNum?1:0;for(len=_Mathmin(sig.length,pad.length),sig.length!==pad.length&&(out=1),i=-1;++i + * @license MIT + */"use strict";function createBuffer(length){if(2147483647size)throw new RangeError("The value \""+size+"\" is invalid for option \"size\"")}function alloc(size,fill,encoding){return assertSize(size),0>=size?createBuffer(size):void 0===fill?createBuffer(size):"string"==typeof encoding?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill)}function allocUnsafe(size){return assertSize(size),createBuffer(0>size?0:0|checked(size))}function fromString(string,encoding){if(("string"!=typeof encoding||""===encoding)&&(encoding="utf8"),!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=0|byteLength(string,encoding),buf=createBuffer(length),actual=buf.write(string,encoding);return actual!==length&&(buf=buf.slice(0,actual)),buf}function fromArrayLike(array){for(var length=0>array.length?0:0|checked(array.length),buf=createBuffer(length),i=0;ibyteOffset||array.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647 .toString(16)+" bytes");return 0|length}function byteLength(string,encoding){if(Buffer.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if("string"!=typeof string)throw new TypeError("The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type "+typeof string);var len=string.length,mustMatch=2>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0;}}function slowToString(encoding,start,end){var loweredCase=!1;if((void 0===start||0>start)&&(start=0),start>this.length)return"";if((void 0===end||end>this.length)&&(end=this.length),0>=end)return"";if(end>>>=0,start>>>=0,end<=start)return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0;}}function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(0===buffer.length)return-1;if("string"==typeof byteOffset?(encoding=byteOffset,byteOffset=0):2147483647byteOffset&&(byteOffset=-2147483648),byteOffset=+byteOffset,numberIsNaN(byteOffset)&&(byteOffset=dir?0:buffer.length-1),0>byteOffset&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(0>byteOffset)if(dir)byteOffset=0;else return-1;if("string"==typeof val&&(val=Buffer.from(val,encoding)),Buffer.isBuffer(val))return 0===val.length?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if("number"==typeof val)return val&=255,"function"==typeof Uint8Array.prototype.indexOf?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){function read(buf,i){return 1===indexSize?buf[i]:buf.readUInt16BE(i*indexSize)}var indexSize=1,arrLength=arr.length,valLength=val.length;if(void 0!==encoding&&(encoding=(encoding+"").toLowerCase(),"ucs2"===encoding||"ucs-2"===encoding||"utf16le"===encoding||"utf-16le"===encoding)){if(2>arr.length||2>val.length)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}var i;if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength&&(byteOffset=arrLength-valLength),i=byteOffset;0<=i;i--){for(var found=!0,j=0;jremaining&&(length=remaining)):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0,parsed;ifirstByte&&(codePoint=firstByte):2===bytesPerSequence?(secondByte=buf[i+1],128==(192&secondByte)&&(tempCodePoint=(31&firstByte)<<6|63&secondByte,127tempCodePoint||57343tempCodePoint&&(codePoint=tempCodePoint))):void 0}null===codePoint?(codePoint=65533,bytesPerSequence=1):65535>>10),codePoint=56320|1023&codePoint),res.push(codePoint),i+=bytesPerSequence}return decodeCodePointsArray(res)}function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=4096)return _StringfromCharCode.apply(String,codePoints);for(var res="",i=0;istart)&&(start=0),(!end||0>end||end>len)&&(end=len);for(var out="",i=start;ioffset)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError("\"buffer\" argument must be a Buffer instance");if(value>max||valuebuf.length)throw new RangeError("Index out of range")}function checkIEEE754(buf,value,offset,ext){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(0>offset)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset>>>=0,noAssert||checkIEEE754(buf,value,offset,4,34028234663852886e22,-34028234663852886e22),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset>>>=0,noAssert||checkIEEE754(buf,value,offset,8,17976931348623157e292,-17976931348623157e292),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}function base64clean(str){if(str=str.split("=")[0],str=str.trim().replace(INVALID_BASE64_RE,""),2>str.length)return"";for(;0!=str.length%4;)str+="=";return str}function toHex(n){return 16>n?"0"+n.toString(16):n.toString(16)}function utf8ToBytes(string,units){units=units||1/0;for(var length=string.length,leadSurrogate=null,bytes=[],i=0,codePoint;icodePoint){if(!leadSurrogate){if(56319codePoint){-1<(units-=3)&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else leadSurrogate&&-1<(units-=3)&&bytes.push(239,191,189);if(leadSurrogate=null,128>codePoint){if(0>(units-=1))break;bytes.push(codePoint)}else if(2048>codePoint){if(0>(units-=2))break;bytes.push(192|codePoint>>6,128|63&codePoint)}else if(65536>codePoint){if(0>(units-=3))break;bytes.push(224|codePoint>>12,128|63&codePoint>>6,128|63&codePoint)}else if(1114112>codePoint){if(0>(units-=4))break;bytes.push(240|codePoint>>18,128|63&codePoint>>12,128|63&codePoint>>6,128|63&codePoint)}else throw new Error("Invalid code point")}return bytes}function asciiToBytes(str){for(var byteArray=[],i=0;i(units-=2));++i)c=str.charCodeAt(i),hi=c>>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||null!=obj&&null!=obj.constructor&&null!=obj.constructor.name&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!==obj}var base64=require("base64-js"),ieee754=require("ieee754");exports.Buffer=Buffer,exports.SlowBuffer=function(length){return+length!=length&&(length=0),Buffer.alloc(+length)},exports.INSPECT_MAX_BYTES=50;exports.kMaxLength=2147483647,Buffer.TYPED_ARRAY_SUPPORT=function(){try{var arr=new Uint8Array(1);return arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===arr.foo()}catch(e){return!1}}(),Buffer.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(Buffer.prototype,"parent",{enumerable:!0,get:function(){return Buffer.isBuffer(this)?this.buffer:void 0}}),Object.defineProperty(Buffer.prototype,"offset",{enumerable:!0,get:function(){return Buffer.isBuffer(this)?this.byteOffset:void 0}}),"undefined"!=typeof Symbol&&null!=Symbol.species&&Buffer[Symbol.species]===Buffer&&Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),Buffer.poolSize=8192,Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)},Buffer.prototype.__proto__=Uint8Array.prototype,Buffer.__proto__=Uint8Array,Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)},Buffer.allocUnsafe=function(size){return allocUnsafe(size)},Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size)},Buffer.isBuffer=function(b){return null!=b&&!0===b._isBuffer&&b!==Buffer.prototype},Buffer.compare=function(a,b){if(isInstance(a,Uint8Array)&&(a=Buffer.from(a,a.offset,a.byteLength)),isInstance(b,Uint8Array)&&(b=Buffer.from(b,b.offset,b.byteLength)),!Buffer.isBuffer(a)||!Buffer.isBuffer(b))throw new TypeError("The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array");if(a===b)return 0;for(var x=a.length,y=b.length,i=0,len=_Mathmin(x,y);imax&&(str+=" ... "),""},Buffer.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer.from(target,target.offset,target.byteLength)),!Buffer.isBuffer(target))throw new TypeError("The \"target\" argument must be one of type Buffer or Uint8Array. Received type "+typeof target);if(void 0===start&&(start=0),void 0===end&&(end=target?target.length:0),void 0===thisStart&&(thisStart=0),void 0===thisEnd&&(thisEnd=this.length),0>start||end>target.length||0>thisStart||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;for(var x=thisEnd-thisStart,y=end-start,len=_Mathmin(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i>>=0,isFinite(length)?(length>>>=0,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),0length||0>offset)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0;}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};Buffer.prototype.slice=function(start,end){var len=this.length;start=~~start,end=void 0===end?len:~~end,0>start?(start+=len,0>start&&(start=0)):start>len&&(start=len),0>end?(end+=len,0>end&&(end=0)):end>len&&(end=len),end>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset+--byteLength],mul=1;0>>=0,noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset>>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i=mul&&(val-=_Mathpow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset>>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];0=mul&&(val-=_Mathpow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,1,this.length),128&this[offset]?-1*(255-this[offset]+1):this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){offset>>>=0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){offset>>>=0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,byteLength>>>=0,!noAssert){var maxBytes=_Mathpow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1,i=0;for(this[offset]=255&value;++i>>=0,byteLength>>>=0,!noAssert){var maxBytes=_Mathpow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var i=byteLength-1,mul=1;for(this[offset+i]=255&value;0<=--i&&(mul*=256);)this[offset+i]=255&value/mul;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=255&value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=255&value,this[offset+1]=value>>>8,offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=255&value,offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=255&value,offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value,offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,!noAssert){var limit=_Mathpow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=255&value;++ivalue&&0===sub&&0!==this[offset+i-1]&&(sub=1),this[offset+i]=255&(value/mul>>0)-sub;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,!noAssert){var limit=_Mathpow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=0;for(this[offset+i]=255&value;0<=--i&&(mul*=256);)0>value&&0===sub&&0!==this[offset+i+1]&&(sub=1),this[offset+i]=255&(value/mul>>0)-sub;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,1,127,-128),0>value&&(value=255+value+1),this[offset]=255&value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=255&value,this[offset+1]=value>>>8,offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=255&value,offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=255&value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),0>value&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value,offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),0targetStart)throw new RangeError("targetStart out of bounds");if(0>start||start>=this.length)throw new RangeError("Index out of range");if(0>end)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStartcode||"latin1"===encoding)&&(val=code)}}else"number"==typeof val&&(val&=255);if(0>start||this.length>>=0,end=end===void 0?this.length:end>>>0,val||(val=0);var i;if("number"==typeof val)for(i=start;im&&!existing.warned){existing.warned=!0;var w=new Error("Possible EventEmitter memory leak detected. "+existing.length+" "+(type+" listeners added. Use emitter.setMaxListeners() to increase limit"));w.name="MaxListenersExceededWarning",w.emitter=target,w.type=type,w.count=existing.length,ProcessEmitWarning(w)}return target}function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(target,type,listener){var state={fired:!1,wrapFn:void 0,target:target,type:type,listener:listener},wrapped=onceWrapper.bind(state);return wrapped.listener=listener,state.wrapFn=wrapped,wrapped}function _listeners(target,type,unwrap){var events=target._events;if(events===void 0)return[];var evlistener=events[type];return void 0===evlistener?[]:"function"==typeof evlistener?unwrap?[evlistener.listener||evlistener]:[evlistener]:unwrap?unwrapListeners(evlistener):arrayClone(evlistener,evlistener.length)}function listenerCount(type){var events=this._events;if(events!==void 0){var evlistener=events[type];if("function"==typeof evlistener)return 1;if(void 0!==evlistener)return evlistener.length}return 0}function arrayClone(arr,n){for(var copy=Array(n),i=0;iarg||NumberIsNaN(arg))throw new RangeError("The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received "+arg+".");defaultMaxListeners=arg}}),EventEmitter.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},EventEmitter.prototype.setMaxListeners=function(n){if("number"!=typeof n||0>n||NumberIsNaN(n))throw new RangeError("The value of \"n\" is out of range. It must be a non-negative number. Received "+n+".");return this._maxListeners=n,this},EventEmitter.prototype.getMaxListeners=function(){return _getMaxListeners(this)},EventEmitter.prototype.emit=function(type){for(var args=[],i=1;iposition)return this;0===position?list.shift():spliceOne(list,position),1===list.length&&(events[type]=list[0]),void 0!==events.removeListener&&this.emit("removeListener",type,originalListener||listener)}return this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.removeAllListeners=function(type){var listeners,events,i;if(events=this._events,void 0===events)return this;if(void 0===events.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==events[type]&&(0==--this._eventsCount?this._events=Object.create(null):delete events[type]),this;if(0===arguments.length){var keys=Object.keys(events),key;for(i=0;ires.length||2!==lastSegmentLength||46!==res.charCodeAt(res.length-1)||46!==res.charCodeAt(res.length-2))if(2length){if(47===to.charCodeAt(toStart+i))return to.slice(toStart+i+1);if(0===i)return to.slice(toStart+i)}else fromLen>length&&(47===from.charCodeAt(fromStart+i)?lastCommonSep=i:0===i&&(lastCommonSep=0));break}var fromCode=from.charCodeAt(fromStart+i),toCode=to.charCodeAt(toStart+i);if(fromCode!==toCode)break;else 47===fromCode&&(lastCommonSep=i)}var out="";for(i=fromStart+lastCommonSep+1;i<=fromEnd;++i)(i===fromEnd||47===from.charCodeAt(i))&&(out+=0===out.length?"..":"/..");return 0=start;--i){if(code=path.charCodeAt(i),47===code){if(!matchedSlash){startPart=i+1;break}continue}-1===end&&(matchedSlash=!1,end=i+1),46===code?-1===startDot?startDot=i:1!==preDotState&&(preDotState=1):-1!==startDot&&(preDotState=-1)}return-1===startDot||-1===end||0===preDotState||1===preDotState&&startDot===end-1&&startDot===startPart+1?-1!==end&&(0===startPart&&isAbsolute?ret.base=ret.name=path.slice(1,end):ret.base=ret.name=path.slice(startPart,end)):(0===startPart&&isAbsolute?(ret.name=path.slice(1,startDot),ret.base=path.slice(1,end)):(ret.name=path.slice(startPart,startDot),ret.base=path.slice(startPart,end)),ret.ext=path.slice(startDot,end)),0pos?0:+pos,search.length)===search}function endsWith(str,search,this_len){return(void 0===this_len||this_len>str.length)&&(this_len=str.length),str.substring(this_len-search.length,this_len)===search}function includes(str,search,start){return"number"!=typeof start&&(start=0),!(start+search.length>str.length)&&-1!==str.indexOf(search,start)}var codes={};createErrorType("ERR_INVALID_OPT_VALUE",function(name,value){return"The value \""+value+"\" is invalid for option \""+name+"\""},TypeError),createErrorType("ERR_INVALID_ARG_TYPE",function(name,expected,actual){var determiner;"string"==typeof expected&&startsWith(expected,"not ")?(determiner="must not be",expected=expected.replace(/^not /,"")):determiner="must be";var msg;if(endsWith(name," argument"))msg="The ".concat(name," ").concat(determiner," ").concat(oneOf(expected,"type"));else{var type=includes(name,".")?"property":"argument";msg="The \"".concat(name,"\" ").concat(type," ").concat(determiner," ").concat(oneOf(expected,"type"))}return msg+=". Received type ".concat(typeof actual),msg},TypeError),createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),createErrorType("ERR_METHOD_NOT_IMPLEMENTED",function(name){return"The "+name+" method is not implemented"}),createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close"),createErrorType("ERR_STREAM_DESTROYED",function(name){return"Cannot call "+name+" after a stream was destroyed"}),createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end"),createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),createErrorType("ERR_UNKNOWN_ENCODING",function(arg){return"Unknown encoding: "+arg},TypeError),createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),module.exports.codes=codes},{}],74:[function(require,module){(function(process){(function(){"use strict";function Duplex(options){return this instanceof Duplex?void(Readable.call(this,options),Writable.call(this,options),this.allowHalfOpen=!0,options&&(!1===options.readable&&(this.readable=!1),!1===options.writable&&(this.writable=!1),!1===options.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",onend)))):new Duplex(options)}function onend(){this._writableState.ended||process.nextTick(onEndNT,this)}function onEndNT(self){self.end()}var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys};module.exports=Duplex;var Readable=require("./_stream_readable"),Writable=require("./_stream_writable");require("inherits")(Duplex,Readable);for(var keys=objectKeys(Writable.prototype),v=0,method;v>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++),n}function howMuchToRead(n,state){return 0>=n||0===state.length&&state.ended?0:state.objectMode?1:n===n?(n>state.highWaterMark&&(state.highWaterMark=computeNewHighWaterMark(n)),n<=state.length?n:state.ended?state.length:(state.needReadable=!0,0)):state.flowing&&state.length?state.buffer.head.data.length:state.length}function onEofChunk(stream,state){if(debug("onEofChunk"),!state.ended){if(state.decoder){var chunk=state.decoder.end();chunk&&chunk.length&&(state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length)}state.ended=!0,state.sync?emitReadable(stream):(state.needReadable=!1,!state.emittedReadable&&(state.emittedReadable=!0,emitReadable_(stream)))}}function emitReadable(stream){var state=stream._readableState;debug("emitReadable",state.needReadable,state.emittedReadable),state.needReadable=!1,state.emittedReadable||(debug("emitReadable",state.flowing),state.emittedReadable=!0,process.nextTick(emitReadable_,stream))}function emitReadable_(stream){var state=stream._readableState;debug("emitReadable_",state.destroyed,state.length,state.ended),!state.destroyed&&(state.length||state.ended)&&(stream.emit("readable"),state.emittedReadable=!1),state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark,flow(stream)}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,process.nextTick(maybeReadMore_,stream,state))}function maybeReadMore_(stream,state){for(;!state.reading&&!state.ended&&(state.length=state.length?(ret=state.decoder?state.buffer.join(""):1===state.buffer.length?state.buffer.first():state.buffer.concat(state.length),state.buffer.clear()):ret=state.buffer.consume(n,state.decoder),ret}function endReadable(stream){var state=stream._readableState;debug("endReadable",state.endEmitted),state.endEmitted||(state.ended=!0,process.nextTick(endReadableNT,state,stream))}function endReadableNT(state,stream){if(debug("endReadableNT",state.endEmitted,state.length),!state.endEmitted&&0===state.length&&(state.endEmitted=!0,stream.readable=!1,stream.emit("end"),state.autoDestroy)){var wState=stream._writableState;(!wState||wState.autoDestroy&&wState.finished)&&stream.destroy()}}function indexOf(xs,x){for(var i=0,l=xs.length;i=state.highWaterMark)||state.ended))return debug("read: emitReadable",state.length,state.ended),0===state.length&&state.ended?endReadable(this):emitReadable(this),null;if(n=howMuchToRead(n,state),0===n&&state.ended)return 0===state.length&&endReadable(this),null;var doRead=state.needReadable;debug("need readable",doRead),(0===state.length||state.length-n>>0),p=this.head,i=0;p;)copyBuffer(p.data,ret,i),i+=p.data.length,p=p.next;return ret}},{key:"consume",value:function(n,hasStrings){var ret;return nstr.length?str.length:n;if(ret+=nb===str.length?str:str.slice(0,n),n-=nb,0===n){nb===str.length?(++c,this.head=p.next?p.next:this.tail=null):(this.head=p,p.data=str.slice(nb));break}++c}return this.length-=c,ret}},{key:"_getBuffer",value:function(n){var ret=Buffer.allocUnsafe(n),p=this.head,c=1;for(p.data.copy(ret),n-=p.data.length;p=p.next;){var buf=p.data,nb=n>buf.length?buf.length:n;if(buf.copy(ret,ret.length-n,0,nb),n-=nb,0===n){nb===buf.length?(++c,this.head=p.next?p.next:this.tail=null):(this.head=p,p.data=buf.slice(nb));break}++c}return this.length-=c,ret}},{key:custom,value:function(_,options){return inspect(this,_objectSpread({},options,{depth:0,customInspect:!1}))}}]),BufferList}()},{buffer:69,util:41}],81:[function(require,module){(function(process){(function(){"use strict";function emitErrorAndCloseNT(self,err){emitErrorNT(self,err),emitCloseNT(self)}function emitCloseNT(self){self._writableState&&!self._writableState.emitClose||self._readableState&&!self._readableState.emitClose||self.emit("close")}function emitErrorNT(self,err){self.emit("error",err)}module.exports={destroy:function(err,cb){var _this=this,readableDestroyed=this._readableState&&this._readableState.destroyed,writableDestroyed=this._writableState&&this._writableState.destroyed;return readableDestroyed||writableDestroyed?(cb?cb(err):err&&(this._writableState?!this._writableState.errorEmitted&&(this._writableState.errorEmitted=!0,process.nextTick(emitErrorNT,this,err)):process.nextTick(emitErrorNT,this,err)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(err||null,function(err){!cb&&err?_this._writableState?_this._writableState.errorEmitted?process.nextTick(emitCloseNT,_this):(_this._writableState.errorEmitted=!0,process.nextTick(emitErrorAndCloseNT,_this,err)):process.nextTick(emitErrorAndCloseNT,_this,err):cb?(process.nextTick(emitCloseNT,_this),cb(err)):process.nextTick(emitCloseNT,_this)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(stream,err){var rState=stream._readableState,wState=stream._writableState;rState&&rState.autoDestroy||wState&&wState.autoDestroy?stream.destroy(err):stream.emit("error",err)}}}).call(this)}).call(this,require("_process"))},{_process:205}],82:[function(require,module){"use strict";function once(callback){var called=!1;return function(){if(!called){called=!0;for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];callback.apply(this,args)}}}function noop(){}function isRequest(stream){return stream.setHeader&&"function"==typeof stream.abort}function eos(stream,opts,callback){if("function"==typeof opts)return eos(stream,null,opts);opts||(opts={}),callback=once(callback||noop);var readable=opts.readable||!1!==opts.readable&&stream.readable,writable=opts.writable||!1!==opts.writable&&stream.writable,onlegacyfinish=function(){stream.writable||onfinish()},writableEnded=stream._writableState&&stream._writableState.finished,onfinish=function(){writable=!1,writableEnded=!0,readable||callback.call(stream)},readableEnded=stream._readableState&&stream._readableState.endEmitted,onend=function(){readable=!1,readableEnded=!0,writable||callback.call(stream)},onerror=function(err){callback.call(stream,err)},onclose=function(){var err;return readable&&!readableEnded?(stream._readableState&&stream._readableState.ended||(err=new ERR_STREAM_PREMATURE_CLOSE),callback.call(stream,err)):writable&&!writableEnded?(stream._writableState&&stream._writableState.ended||(err=new ERR_STREAM_PREMATURE_CLOSE),callback.call(stream,err)):void 0},onrequest=function(){stream.req.on("finish",onfinish)};return isRequest(stream)?(stream.on("complete",onfinish),stream.on("abort",onclose),stream.req?onrequest():stream.on("request",onrequest)):writable&&!stream._writableState&&(stream.on("end",onlegacyfinish),stream.on("close",onlegacyfinish)),stream.on("end",onend),stream.on("finish",onfinish),!1!==opts.error&&stream.on("error",onerror),stream.on("close",onclose),function(){stream.removeListener("complete",onfinish),stream.removeListener("abort",onclose),stream.removeListener("request",onrequest),stream.req&&stream.req.removeListener("finish",onfinish),stream.removeListener("end",onlegacyfinish),stream.removeListener("close",onlegacyfinish),stream.removeListener("finish",onfinish),stream.removeListener("end",onend),stream.removeListener("error",onerror),stream.removeListener("close",onclose)}}var ERR_STREAM_PREMATURE_CLOSE=require("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;module.exports=eos},{"../../../errors":73}],83:[function(require,module){module.exports=function(){throw new Error("Readable.from is not available in the browser")}},{}],84:[function(require,module){"use strict";function once(callback){var called=!1;return function(){called||(called=!0,callback.apply(void 0,arguments))}}function noop(err){if(err)throw err}function isRequest(stream){return stream.setHeader&&"function"==typeof stream.abort}function destroyer(stream,reading,writing,callback){callback=once(callback);var closed=!1;stream.on("close",function(){closed=!0}),eos===void 0&&(eos=require("./end-of-stream")),eos(stream,{readable:reading,writable:writing},function(err){return err?callback(err):void(closed=!0,callback())});var destroyed=!1;return function(err){if(!closed)return destroyed?void 0:(destroyed=!0,isRequest(stream)?stream.abort():"function"==typeof stream.destroy?stream.destroy():void callback(err||new ERR_STREAM_DESTROYED("pipe")))}}function call(fn){fn()}function pipe(from,to){return from.pipe(to)}function popCallback(streams){return streams.length?"function"==typeof streams[streams.length-1]?streams.pop():noop:noop}var _require$codes=require("../../../errors").codes,ERR_MISSING_ARGS=_require$codes.ERR_MISSING_ARGS,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED,eos;module.exports=function(){for(var _len=arguments.length,streams=Array(_len),_key=0;_key<_len;_key++)streams[_key]=arguments[_key];var callback=popCallback(streams);if(Array.isArray(streams[0])&&(streams=streams[0]),2>streams.length)throw new ERR_MISSING_ARGS("streams");var destroys=streams.map(function(stream,i){var reading=ihwm){var name=isDuplex?duplexKey:"highWaterMark";throw new ERR_INVALID_OPT_VALUE(name,hwm)}return _Mathfloor(hwm)}return state.objectMode?16:16384}}},{"../../../errors":73}],86:[function(require,module){module.exports=require("events").EventEmitter},{events:70}],87:[function(require,module){(function(Buffer){(function(){module.exports=function(size){if("number"!=typeof size)throw new TypeError("\"size\" argument must be a number");if(0>size)throw new RangeError("\"size\" argument must not be negative");return Buffer.allocUnsafe?Buffer.allocUnsafe(size):new Buffer(size)}}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69}],88:[function(require,module){(function(Buffer){(function(){var bufferFill=require("buffer-fill"),allocUnsafe=require("buffer-alloc-unsafe");module.exports=function(size,fill,encoding){if("number"!=typeof size)throw new TypeError("\"size\" argument must be a number");if(0>size)throw new RangeError("\"size\" argument must not be negative");if(Buffer.alloc)return Buffer.alloc(size,fill,encoding);var buffer=allocUnsafe(size);return 0===size?buffer:void 0===fill?bufferFill(buffer,0):("string"!=typeof encoding&&(encoding=void 0),bufferFill(buffer,fill,encoding))}}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69,"buffer-alloc-unsafe":87,"buffer-fill":89}],89:[function(require,module){(function(Buffer){(function(){function isSingleByte(val){return 1===val.length&&256>val.charCodeAt(0)}function fillWithNumber(buffer,val,start,end){if(0>start||end>buffer.length)throw new RangeError("Out of range index");return start>>>=0,end=void 0===end?buffer.length:end>>>0,end>start&&buffer.fill(val,start,end),buffer}function fillWithBuffer(buffer,val,start,end){if(0>start||end>buffer.length)throw new RangeError("Out of range index");if(end<=start)return buffer;start>>>=0,end=void 0===end?buffer.length:end>>>0;for(var pos=start,len=val.length;pos<=end-len;)val.copy(buffer,pos),pos+=len;return pos!==end&&val.copy(buffer,pos,0,end-pos),buffer}var hasFullSupport=function(){try{if(!Buffer.isEncoding("latin1"))return!1;var buf=Buffer.alloc?Buffer.alloc(4):new Buffer(4);return buf.fill("ab","ucs2"),"61006200"===buf.toString("hex")}catch(_){return!1}}();module.exports=function(buffer,val,start,end,encoding){if(hasFullSupport)return buffer.fill(val,start,end,encoding);if("number"==typeof val)return fillWithNumber(buffer,val,start,end);if("string"==typeof val){if("string"==typeof start?(encoding=start,start=0,end=buffer.length):"string"==typeof end&&(encoding=end,end=buffer.length),void 0!==encoding&&"string"!=typeof encoding)throw new TypeError("encoding must be a string");if("latin1"===encoding&&(encoding="binary"),"string"==typeof encoding&&!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(""===val)return fillWithNumber(buffer,0,start,end);if(isSingleByte(val))return fillWithNumber(buffer,val.charCodeAt(0),start,end);val=new Buffer(val,encoding)}return Buffer.isBuffer(val)?fillWithBuffer(buffer,val,start,end):fillWithNumber(buffer,0,start,end)}}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69}],90:[function(require,module){(function(Buffer){(function(){module.exports=function(a,b){for(var length=_Mathmin(a.length,b.length),buffer=new Buffer(length),i=0;i */const LRU=require("lru"),queueMicrotask=require("queue-microtask");module.exports=class{constructor(store,opts){if(this.store=store,this.chunkLength=store.chunkLength,this.inProgressGets=new Map,!this.store||!this.store.get||!this.store.put)throw new Error("First argument must be abstract-chunk-store compliant");this.cache=new LRU(opts)}put(index,buf,cb=()=>{}){return this.cache?void(this.cache.remove(index),this.store.put(index,buf,cb)):queueMicrotask(()=>cb(new Error("CacheStore closed")))}get(index,opts,cb=()=>{}){if("function"==typeof opts)return this.get(index,null,opts);if(!this.cache)return queueMicrotask(()=>cb(new Error("CacheStore closed")));opts||(opts={});let buf=this.cache.get(index);if(buf){const offset=opts.offset||0,len=opts.length||buf.length-offset;return(0!==offset||len!==buf.length)&&(buf=buf.slice(offset,len+offset)),queueMicrotask(()=>cb(null,buf))}let waiters=this.inProgressGets.get(index);const getAlreadyStarted=!!waiters;waiters||(waiters=[],this.inProgressGets.set(index,waiters)),waiters.push({opts,cb}),getAlreadyStarted||this.store.get(index,(err,buf)=>{err||null==this.cache||this.cache.set(index,buf);const inProgressEntry=this.inProgressGets.get(index);this.inProgressGets.delete(index);for(const{opts,cb}of inProgressEntry)if(err)cb(err);else{const offset=opts.offset||0,len=opts.length||buf.length-offset;let slicedBuf=buf;(0!==offset||len!==buf.length)&&(slicedBuf=buf.slice(offset,len+offset)),cb(null,slicedBuf)}})}close(cb=()=>{}){return this.cache?void(this.cache=null,this.store.close(cb)):queueMicrotask(()=>cb(new Error("CacheStore closed")))}destroy(cb=()=>{}){return this.cache?void(this.cache=null,this.store.destroy(cb)):queueMicrotask(()=>cb(new Error("CacheStore closed")))}}},{lru:168,"queue-microtask":218}],93:[function(require,module){const BlockStream=require("block-stream2"),stream=require("readable-stream");class ChunkStoreWriteStream extends stream.Writable{constructor(store,chunkLength,opts={}){if(super(opts),!store||!store.put||!store.get)throw new Error("First argument must be an abstract-chunk-store compliant store");if(chunkLength=+chunkLength,!chunkLength)throw new Error("Second argument must be a chunk length");const zeroPadding=void 0!==opts.zeroPadding&&opts.zeroPadding;this._blockstream=new BlockStream(chunkLength,{...opts,zeroPadding}),this._outstandingPuts=0,this._storeMaxOutstandingPuts=opts.storeMaxOutstandingPuts||16;let index=0;const onData=chunk=>{this.destroyed||(this._outstandingPuts+=1,this._outstandingPuts>=this._storeMaxOutstandingPuts&&this._blockstream.pause(),store.put(index,chunk,err=>err?this.destroy(err):void(this._outstandingPuts-=1,this._outstandingPuts{this.destroy(err)})}_write(chunk,encoding,callback){this._blockstream.write(chunk,encoding,callback)}_final(cb){this._blockstream.end(),this._blockstream.once("end",()=>{0===this._outstandingPuts?cb(null):this._finalCb=cb})}destroy(err){this.destroyed||(this.destroyed=!0,err&&this.emit("error",err),this.emit("close"))}}module.exports=ChunkStoreWriteStream},{"block-stream2":38,"readable-stream":240}],94:[function(require,module){function CipherBase(hashMode){Transform.call(this),this.hashMode="string"==typeof hashMode,this.hashMode?this[hashMode]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}var Buffer=require("safe-buffer").Buffer,Transform=require("stream").Transform,StringDecoder=require("string_decoder").StringDecoder,inherits=require("inherits");inherits(CipherBase,Transform),CipherBase.prototype.update=function(data,inputEnc,outputEnc){"string"==typeof data&&(data=Buffer.from(data,inputEnc));var outData=this._update(data);return this.hashMode?this:(outputEnc&&(outData=this._toString(outData,outputEnc)),outData)},CipherBase.prototype.setAutoPadding=function(){},CipherBase.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},CipherBase.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},CipherBase.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},CipherBase.prototype._transform=function(data,_,next){var err;try{this.hashMode?this._update(data):this.push(this._update(data))}catch(e){err=e}finally{next(err)}},CipherBase.prototype._flush=function(done){var err;try{this.push(this.__final())}catch(e){err=e}done(err)},CipherBase.prototype._finalOrDigest=function(outputEnc){var outData=this.__final()||Buffer.alloc(0);return outputEnc&&(outData=this._toString(outData,outputEnc,!0)),outData},CipherBase.prototype._toString=function(value,enc,fin){if(this._decoder||(this._decoder=new StringDecoder(enc),this._encoding=enc),this._encoding!==enc)throw new Error("can't switch encodings");var out=this._decoder.write(value);return fin&&(out+=this._decoder.end()),out},module.exports=CipherBase},{inherits:159,"safe-buffer":247,stream:72,string_decoder:276}],95:[function(require,module){(function(Buffer){(function(){var clone=function(){"use strict";function _instanceof(obj,type){return null!=type&&obj instanceof type}function clone(parent,circular,depth,prototype,includeNonEnumerable){function _clone(parent,depth){if(null===parent)return null;if(0===depth)return parent;var child,proto;if("object"!=typeof parent)return parent;if(_instanceof(parent,nativeMap))child=new nativeMap;else if(_instanceof(parent,nativeSet))child=new nativeSet;else if(_instanceof(parent,nativePromise))child=new nativePromise(function(resolve,reject){parent.then(function(value){resolve(_clone(value,depth-1))},function(err){reject(_clone(err,depth-1))})});else if(clone.__isArray(parent))child=[];else if(clone.__isRegExp(parent))child=new RegExp(parent.source,__getRegExpFlags(parent)),parent.lastIndex&&(child.lastIndex=parent.lastIndex);else if(clone.__isDate(parent))child=new Date(parent.getTime());else{if(useBuffer&&Buffer.isBuffer(parent))return child=Buffer.allocUnsafe?Buffer.allocUnsafe(parent.length):new Buffer(parent.length),parent.copy(child),child;_instanceof(parent,Error)?child=Object.create(parent):"undefined"==typeof prototype?(proto=Object.getPrototypeOf(parent),child=Object.create(proto)):(child=Object.create(prototype),proto=prototype)}if(circular){var index=allParents.indexOf(parent);if(-1!=index)return allChildren[index];allParents.push(parent),allChildren.push(child)}for(var i in _instanceof(parent,nativeMap)&&parent.forEach(function(value,key){var keyChild=_clone(key,depth-1),valueChild=_clone(value,depth-1);child.set(keyChild,valueChild)}),_instanceof(parent,nativeSet)&&parent.forEach(function(value){var entryChild=_clone(value,depth-1);child.add(entryChild)}),parent){var attrs;(proto&&(attrs=Object.getOwnPropertyDescriptor(proto,i)),!(attrs&&null==attrs.set))&&(child[i]=_clone(parent[i],depth-1))}if(Object.getOwnPropertySymbols)for(var symbols=Object.getOwnPropertySymbols(parent),i=0;iblocksize){var hash="rmd160"===alg?new RIPEMD160:sha(alg);key=hash.update(key).digest()}else key.length64?key=alg(key):key.length<64&&(key=Buffer.concat([key,ZEROS],64));for(var ipad=this._ipad=Buffer.allocUnsafe(64),opad=this._opad=Buffer.allocUnsafe(64),i=0;i<64;i++)ipad[i]=54^key[i],opad[i]=92^key[i];this._hash=[ipad]}var inherits=require("inherits"),Buffer=require("safe-buffer").Buffer,Base=require("cipher-base"),ZEROS=Buffer.alloc(128);inherits(Hmac,Base),Hmac.prototype._update=function(data){this._hash.push(data)},Hmac.prototype._final=function(){var h=this._alg(Buffer.concat(this._hash));return this._alg(Buffer.concat([this._opad,h]))},module.exports=Hmac},{"cipher-base":94,inherits:159,"safe-buffer":247}],103:[function(require,module){(function(Buffer){(function(){function _parseInput(input,opts,cb){function processInput(){parallel(input.map(item=>cb=>{const file={};if(isBlob(item))file.getStream=getBlobStream(item),file.length=item.size;else if(Buffer.isBuffer(item))file.getStream=getBufferStream(item),file.length=item.length;else if(isReadable(item))file.getStream=getStreamStream(item,file),file.length=0;else{if("string"==typeof item){if("function"!=typeof getFiles)throw new Error("filesystem paths do not work in the browser");const keepRoot=1err?cb(err):void(files=files.flat(),cb(null,files,isSingleFileTorrent)))}if(isFileList(input)&&(input=Array.from(input)),Array.isArray(input)||(input=[input]),0===input.length)throw new Error("invalid input type");input.forEach(item=>{if(null==item)throw new Error(`invalid input type: ${item}`)}),input=input.map(item=>isBlob(item)&&"string"==typeof item.path&&"function"==typeof getFiles?item.path:item),1!==input.length||"string"==typeof input[0]||input[0].name||(input[0].name=opts.name);let commonPrefix=null;input.forEach((item,i)=>{if("string"==typeof item)return;let path=item.fullPath||item.name;path||(path=`Unknown File ${i+1}`,item.unknownName=!0),item.path=path.split("/"),item.path[0]||item.path.shift(),2>item.path.length?commonPrefix=null:0===i&&1"string"==typeof item||!isJunkPath(item.path))),commonPrefix&&input.forEach(item=>{const pathless=(Buffer.isBuffer(item)||isReadable(item))&&!item.path;"string"==typeof item||pathless||item.path.shift()}),!opts.name&&commonPrefix&&(opts.name=commonPrefix),opts.name||input.some(item=>"string"==typeof item?(opts.name=corePath.basename(item),!0):!item.unknownName&&(opts.name=item.path[item.path.length-1],!0)),opts.name||(opts.name=`Unnamed Torrent ${Date.now()}`);const numPaths=input.reduce((sum,item)=>sum+ +("string"==typeof item),0);let isSingleFileTorrent=1===input.length;if(1===input.length&&"string"==typeof input[0]){if("function"!=typeof getFiles)throw new Error("filesystem paths do not work in the browser");isFile(input[0],(err,pathIsFile)=>err?cb(err):void(isSingleFileTorrent=pathIsFile,processInput()))}else queueMicrotask(processInput)}function getPieceList(files,pieceLength,estimatedTorrentLength,opts,cb){function onData(chunk){length+=chunk.length;const i=pieceNum;sha1(chunk,hash=>{pieces[i]=hash,remainingHashes-=1,remainingHashes=MAX_OUTSTANDING_HASHES&&blockstream.pause(),pieceNum+=1}function onEnd(){ended=!0,maybeDone()}function onError(err){cleanup(),cb(err)}function cleanup(){multistream.removeListener("error",onError),blockstream.removeListener("data",onData),blockstream.removeListener("end",onEnd),blockstream.removeListener("error",onError)}function maybeDone(){ended&&0===remainingHashes&&(cleanup(),cb(null,Buffer.from(pieces.join(""),"hex"),length))}cb=once(cb);const pieces=[];let length=0,hashedLength=0;const streams=files.map(file=>file.getStream);let remainingHashes=0,pieceNum=0,ended=!1;const multistream=new MultiStream(streams),blockstream=new BlockStream(pieceLength,{zeroPadding:!1});multistream.on("error",onError),multistream.pipe(blockstream).on("data",onData).on("end",onEnd).on("error",onError)}function onFiles(files,opts,cb){let announceList=opts.announceList;announceList||("string"==typeof opts.announce?announceList=[[opts.announce]]:Array.isArray(opts.announce)&&(announceList=opts.announce.map(u=>[u]))),announceList||(announceList=[]),globalThis.WEBTORRENT_ANNOUNCE&&("string"==typeof globalThis.WEBTORRENT_ANNOUNCE?announceList.push([[globalThis.WEBTORRENT_ANNOUNCE]]):Array.isArray(globalThis.WEBTORRENT_ANNOUNCE)&&(announceList=announceList.concat(globalThis.WEBTORRENT_ANNOUNCE.map(u=>[u])))),opts.announce===void 0&&opts.announceList===void 0&&(announceList=announceList.concat(module.exports.announceList)),"string"==typeof opts.urlList&&(opts.urlList=[opts.urlList]);const torrent={info:{name:opts.name},"creation date":_Mathceil((+opts.creationDate||Date.now())/1e3),encoding:"UTF-8"};0!==announceList.length&&(torrent.announce=announceList[0][0],torrent["announce-list"]=announceList),opts.comment!==void 0&&(torrent.comment=opts.comment),opts.createdBy!==void 0&&(torrent["created by"]=opts.createdBy),opts.private!==void 0&&(torrent.info.private=+opts.private),opts.info!==void 0&&Object.assign(torrent.info,opts.info),opts.sslCert!==void 0&&(torrent.info["ssl-cert"]=opts.sslCert),opts.urlList!==void 0&&(torrent["url-list"]=opts.urlList);const estimatedTorrentLength=files.reduce(sumLength,0),pieceLength=opts.pieceLength||calcPieceLength(estimatedTorrentLength);torrent.info["piece length"]=pieceLength,getPieceList(files,pieceLength,estimatedTorrentLength,opts,(err,pieces,torrentLength)=>err?cb(err):void(torrent.info.pieces=pieces,files.forEach(file=>{delete file.getStream}),opts.singleFileTorrent?torrent.info.length=torrentLength:torrent.info.files=files,cb(null,bencode.encode(torrent))))}function isJunkPath(path){const filename=path[path.length-1];return"."===filename[0]&&junk.is(filename)}function sumLength(sum,file){return sum+file.length}function isBlob(obj){return"undefined"!=typeof Blob&&obj instanceof Blob}function isFileList(obj){return"undefined"!=typeof FileList&&obj instanceof FileList}function isReadable(obj){return"object"==typeof obj&&null!=obj&&"function"==typeof obj.pipe}function getBlobStream(file){return()=>new FileReadStream(file)}function getBufferStream(buffer){return()=>{const s=new stream.PassThrough;return s.end(buffer),s}}function getStreamStream(readable,file){return()=>{const counter=new stream.Transform;return counter._transform=function(buf,enc,done){file.length+=buf.length,this.push(buf),done()},readable.pipe(counter),counter}}/*! create-torrent. MIT License. WebTorrent LLC */const bencode=require("bencode"),BlockStream=require("block-stream2"),calcPieceLength=require("piece-length"),corePath=require("path"),FileReadStream=require("filestream/read"),isFile=require("is-file"),junk=require("junk"),MultiStream=require("multistream"),once=require("once"),parallel=require("run-parallel"),queueMicrotask=require("queue-microtask"),sha1=require("simple-sha1"),stream=require("readable-stream"),getFiles=require("./get-files"),MAX_OUTSTANDING_HASHES=5;module.exports=function(input,opts,cb){"function"==typeof opts&&([opts,cb]=[cb,opts]),opts=opts?Object.assign({},opts):{},_parseInput(input,opts,(err,files,singleFileTorrent)=>err?cb(err):void(opts.singleFileTorrent=singleFileTorrent,onFiles(files,opts,cb)))},module.exports.parseInput=function(input,opts,cb){"function"==typeof opts&&([opts,cb]=[cb,opts]),opts=opts?Object.assign({},opts):{},_parseInput(input,opts,cb)},module.exports.announceList=[["udp://tracker.leechers-paradise.org:6969"],["udp://tracker.coppersurfer.tk:6969"],["udp://tracker.opentrackr.org:1337"],["udp://explodie.org:6969"],["udp://tracker.empire-js.us:1337"],["wss://tracker.btorrent.xyz"],["wss://tracker.openwebtorrent.com"]],module.exports.isJunkPath=isJunkPath}).call(this)}).call(this,require("buffer").Buffer)},{"./get-files":41,bencode:27,"block-stream2":38,buffer:69,"filestream/read":140,"is-file":41,junk:163,multistream:189,once:191,path:71,"piece-length":204,"queue-microtask":218,"readable-stream":240,"run-parallel":245,"simple-sha1":260}],104:[function(require,module,exports){"use strict";exports.randomBytes=exports.rng=exports.pseudoRandomBytes=exports.prng=require("randombytes"),exports.createHash=exports.Hash=require("create-hash"),exports.createHmac=exports.Hmac=require("create-hmac");var algos=require("browserify-sign/algos"),algoKeys=Object.keys(algos),hashes=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(algoKeys);exports.getHashes=function(){return hashes};var p=require("pbkdf2");exports.pbkdf2=p.pbkdf2,exports.pbkdf2Sync=p.pbkdf2Sync;var aes=require("browserify-cipher");exports.Cipher=aes.Cipher,exports.createCipher=aes.createCipher,exports.Cipheriv=aes.Cipheriv,exports.createCipheriv=aes.createCipheriv,exports.Decipher=aes.Decipher,exports.createDecipher=aes.createDecipher,exports.Decipheriv=aes.Decipheriv,exports.createDecipheriv=aes.createDecipheriv,exports.getCiphers=aes.getCiphers,exports.listCiphers=aes.listCiphers;var dh=require("diffie-hellman");exports.DiffieHellmanGroup=dh.DiffieHellmanGroup,exports.createDiffieHellmanGroup=dh.createDiffieHellmanGroup,exports.getDiffieHellman=dh.getDiffieHellman,exports.createDiffieHellman=dh.createDiffieHellman,exports.DiffieHellman=dh.DiffieHellman;var sign=require("browserify-sign");exports.createSign=sign.createSign,exports.Sign=sign.Sign,exports.createVerify=sign.createVerify,exports.Verify=sign.Verify,exports.createECDH=require("create-ecdh");var publicEncrypt=require("public-encrypt");exports.publicEncrypt=publicEncrypt.publicEncrypt,exports.privateEncrypt=publicEncrypt.privateEncrypt,exports.publicDecrypt=publicEncrypt.publicDecrypt,exports.privateDecrypt=publicEncrypt.privateDecrypt;var rf=require("randomfill");exports.randomFill=rf.randomFill,exports.randomFillSync=rf.randomFillSync,exports.createCredentials=function(){throw new Error("sorry, createCredentials is not implemented yet\nwe accept pull requests\nhttps://github.com/crypto-browserify/crypto-browserify")},exports.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},{"browserify-cipher":59,"browserify-sign":66,"browserify-sign/algos":63,"create-ecdh":97,"create-hash":99,"create-hmac":101,"diffie-hellman":113,pbkdf2:198,"public-encrypt":206,randombytes:221,randomfill:222}],105:[function(require,module,exports){(function(process){(function(){function load(){let r;try{r=exports.storage.getItem("debug")}catch(error){}return!r&&"undefined"!=typeof process&&"env"in process&&(r=process.env.DEBUG),r}exports.formatArgs=function(args){if(args[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+args[0]+(this.useColors?"%c ":" ")+"+"+module.exports.humanize(this.diff),!this.useColors)return;const c="color: "+this.color;args.splice(1,0,c,"color: inherit");let index=0,lastC=0;args[0].replace(/%[a-zA-Z%]/g,match=>{"%%"===match||(index++,"%c"===match&&(lastC=index))}),args.splice(lastC,0,c)},exports.save=function(namespaces){try{namespaces?exports.storage.setItem("debug",namespaces):exports.storage.removeItem("debug")}catch(error){}},exports.load=load,exports.useColors=function(){return!!("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))||!("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&31<=parseInt(RegExp.$1,10)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},exports.storage=function(){try{return localStorage}catch(error){}}(),exports.destroy=(()=>{let warned=!1;return()=>{warned||(warned=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),exports.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],exports.log=console.debug||console.log||(()=>{}),module.exports=require("./common")(exports);const{formatters}=module.exports;formatters.j=function(v){try{return JSON.stringify(v)}catch(error){return"[UnexpectedJSONParseError]: "+error.message}}}).call(this)}).call(this,require("_process"))},{"./common":106,_process:205}],106:[function(require,module){module.exports=function(env){function createDebug(namespace){function debug(...args){if(!debug.enabled)return;const self=debug,curr=+new Date,ms=curr-(prevTime||curr);self.diff=ms,self.prev=prevTime,self.curr=curr,prevTime=curr,args[0]=createDebug.coerce(args[0]),"string"!=typeof args[0]&&args.unshift("%O");let index=0;args[0]=args[0].replace(/%([a-zA-Z%])/g,(match,format)=>{if("%%"===match)return"%";index++;const formatter=createDebug.formatters[format];if("function"==typeof formatter){const val=args[index];match=formatter.call(self,val),args.splice(index,1),index--}return match}),createDebug.formatArgs.call(self,args);const logFn=self.log||createDebug.log;logFn.apply(self,args)}let enableOverride=null,prevTime,namespacesCache,enabledCache;return debug.namespace=namespace,debug.useColors=createDebug.useColors(),debug.color=createDebug.selectColor(namespace),debug.extend=extend,debug.destroy=createDebug.destroy,Object.defineProperty(debug,"enabled",{enumerable:!0,configurable:!1,get:()=>null===enableOverride?(namespacesCache!==createDebug.namespaces&&(namespacesCache=createDebug.namespaces,enabledCache=createDebug.enabled(namespace)),enabledCache):enableOverride,set:v=>{enableOverride=v}}),"function"==typeof createDebug.init&&createDebug.init(debug),debug}function extend(namespace,delimiter){const newDebug=createDebug(this.namespace+("undefined"==typeof delimiter?":":delimiter)+namespace);return newDebug.log=this.log,newDebug}function toNamespace(regexp){return regexp.toString().substring(2,regexp.toString().length-2).replace(/\.\*\?$/,"*")}return createDebug.debug=createDebug,createDebug.default=createDebug,createDebug.coerce=function(val){return val instanceof Error?val.stack||val.message:val},createDebug.disable=function(){const namespaces=[...createDebug.names.map(toNamespace),...createDebug.skips.map(toNamespace).map(namespace=>"-"+namespace)].join(",");return createDebug.enable(""),namespaces},createDebug.enable=function(namespaces){createDebug.save(namespaces),createDebug.namespaces=namespaces,createDebug.names=[],createDebug.skips=[];let i;const split=("string"==typeof namespaces?namespaces:"").split(/[\s,]+/),len=split.length;for(i=0;i{createDebug[key]=env[key]}),createDebug.names=[],createDebug.skips=[],createDebug.formatters={},createDebug.selectColor=function(namespace){let hash=0;for(let i=0;i>>1],kL=utils.r28shl(kL,shift),kR=utils.r28shl(kR,shift),utils.pc2(kL,kR,state.keys,i)},DES.prototype._update=function(inp,inOff,out,outOff){var state=this._desState,l=utils.readUInt32BE(inp,inOff),r=utils.readUInt32BE(inp,inOff+4);utils.ip(l,r,state.tmp,0),l=state.tmp[0],r=state.tmp[1],"encrypt"===this.type?this._encrypt(state,l,r,state.tmp,0):this._decrypt(state,l,r,state.tmp,0),l=state.tmp[0],r=state.tmp[1],utils.writeUInt32BE(out,l,outOff),utils.writeUInt32BE(out,r,outOff+4)},DES.prototype._pad=function(buffer,off){for(var value=buffer.length-off,i=off;i>>0,l=t}utils.rip(r,l,out,off)},DES.prototype._decrypt=function(state,lStart,rStart,out,off){for(var l=rStart,r=lStart,i=state.keys.length-2;0<=i;i-=2){var keyL=state.keys[i],keyR=state.keys[i+1];utils.expand(l,state.tmp,0),keyL^=state.tmp[0],keyR^=state.tmp[1];var s=utils.substitute(keyL,keyR),f=utils.permute(s),t=l;l=(r^f)>>>0,r=t}utils.rip(l,r,out,off)}},{"./cipher":109,"./utils":112,inherits:159,"minimalistic-assert":180}],111:[function(require,module){"use strict";function EDEState(type,key){assert.equal(key.length,24,"Invalid key length");var k1=key.slice(0,8),k2=key.slice(8,16),k3=key.slice(16,24);this.ciphers="encrypt"===type?[DES.create({type:"encrypt",key:k1}),DES.create({type:"decrypt",key:k2}),DES.create({type:"encrypt",key:k3})]:[DES.create({type:"decrypt",key:k3}),DES.create({type:"encrypt",key:k2}),DES.create({type:"decrypt",key:k1})]}function EDE(options){Cipher.call(this,options);var state=new EDEState(this.type,this.options.key);this._edeState=state}var assert=require("minimalistic-assert"),inherits=require("inherits"),Cipher=require("./cipher"),DES=require("./des");inherits(EDE,Cipher),module.exports=EDE,EDE.create=function(options){return new EDE(options)},EDE.prototype._update=function(inp,inOff,out,outOff){var state=this._edeState;state.ciphers[0]._update(inp,inOff,out,outOff),state.ciphers[1]._update(out,outOff,out,outOff),state.ciphers[2]._update(out,outOff,out,outOff)},EDE.prototype._pad=DES.prototype._pad,EDE.prototype._unpad=DES.prototype._unpad},{"./cipher":109,"./des":110,inherits:159,"minimalistic-assert":180}],112:[function(require,module,exports){"use strict";exports.readUInt32BE=function(bytes,off){var res=bytes[0+off]<<24|bytes[1+off]<<16|bytes[2+off]<<8|bytes[3+off];return res>>>0},exports.writeUInt32BE=function(bytes,value,off){bytes[0+off]=value>>>24,bytes[1+off]=255&value>>>16,bytes[2+off]=255&value>>>8,bytes[3+off]=255&value},exports.ip=function(inL,inR,out,off){for(var outL=0,outR=0,i=6;0<=i;i-=2){for(var j=0;24>=j;j+=8)outL<<=1,outL|=1&inR>>>j+i;for(var j=0;24>=j;j+=8)outL<<=1,outL|=1&inL>>>j+i}for(var i=6;0<=i;i-=2){for(var j=1;25>=j;j+=8)outR<<=1,outR|=1&inR>>>j+i;for(var j=1;25>=j;j+=8)outR<<=1,outR|=1&inL>>>j+i}out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.rip=function(inL,inR,out,off){for(var outL=0,outR=0,i=0;4>i;i++)for(var j=24;0<=j;j-=8)outL<<=1,outL|=1&inR>>>j+i,outL<<=1,outL|=1&inL>>>j+i;for(var i=4;8>i;i++)for(var j=24;0<=j;j-=8)outR<<=1,outR|=1&inR>>>j+i,outR<<=1,outR|=1&inL>>>j+i;out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.pc1=function(inL,inR,out,off){for(var outL=0,outR=0,i=7;5<=i;i--){for(var j=0;24>=j;j+=8)outL<<=1,outL|=1&inR>>j+i;for(var j=0;24>=j;j+=8)outL<<=1,outL|=1&inL>>j+i}for(var j=0;24>=j;j+=8)outL<<=1,outL|=1&inR>>j+i;for(var i=1;3>=i;i++){for(var j=0;24>=j;j+=8)outR<<=1,outR|=1&inR>>j+i;for(var j=0;24>=j;j+=8)outR<<=1,outR|=1&inL>>j+i}for(var j=0;24>=j;j+=8)outR<<=1,outR|=1&inL>>j+i;out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.r28shl=function(num,shift){return 268435455&num<>>28-shift};var pc2table=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];exports.pc2=function(inL,inR,out,off){for(var outL=0,outR=0,len=pc2table.length>>>1,i=0;i>>pc2table[i];for(var i=len;i>>pc2table[i];out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.expand=function(r,out,off){var outL=0,outR=0;outL=(1&r)<<5|r>>>27;for(var i=23;15<=i;i-=4)outL<<=6,outL|=63&r>>>i;for(var i=11;3<=i;i-=4)outR|=63&r>>>i,outR<<=6;outR|=(31&r)<<1|r>>>31,out[off+0]=outL>>>0,out[off+1]=outR>>>0};var sTable=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];exports.substitute=function(inL,inR){for(var out=0,i=0;4>i;i++){var b=63&inL>>>18-6*i,sb=sTable[64*i+b];out<<=4,out|=sb}for(var i=0;4>i;i++){var b=63&inR>>>18-6*i,sb=sTable[256+64*i+b];out<<=4,out|=sb}return out>>>0};var permuteTable=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];exports.permute=function(num){for(var out=0,i=0;i>>permuteTable[i];return out>>>0},exports.padSplit=function(num,size,group){for(var str=num.toString(2);str.lengthk;k+=2){sqrt=_Mathceil(_Mathsqrt(k));for(var j=0;jbits)return 2===gen||5===gen?new BN([140,123]):new BN([140,39]);gen=new BN(gen);for(var num,n2;;){for(num=new BN(randomBytes(_Mathceil(bits/8)));num.bitLength()>bits;)num.ishrn(1);if(num.isEven()&&num.iadd(ONE),num.testn(1)||num.iadd(TWO),!gen.cmp(TWO))for(;num.mod(TWENTYFOUR).cmp(ELEVEN);)num.iadd(FOUR);else if(!gen.cmp(FIVE))for(;num.mod(TEN).cmp(THREE);)num.iadd(FOUR);if(n2=num.shrn(1),simpleSieve(n2)&&simpleSieve(num)&&fermatTest(n2)&&fermatTest(num)&&millerRabin.test(n2)&&millerRabin.test(num))return num}}var randomBytes=require("randombytes");module.exports=findPrime,findPrime.simpleSieve=simpleSieve,findPrime.fermatTest=fermatTest;var BN=require("bn.js"),TWENTYFOUR=new BN(24),MillerRabin=require("miller-rabin"),millerRabin=new MillerRabin,ONE=new BN(1),TWO=new BN(2),FIVE=new BN(5),SIXTEEN=new BN(16),EIGHT=new BN(8),TEN=new BN(10),THREE=new BN(3),SEVEN=new BN(7),ELEVEN=new BN(11),FOUR=new BN(4),TWELVE=new BN(12),primes=null},{"bn.js":117,"miller-rabin":174,randombytes:221}],116:[function(require,module){module.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},{}],117:[function(require,module,exports){arguments[4][22][0].apply(exports,arguments)},{buffer:41,dup:22}],118:[function(require,module,exports){"use strict";var elliptic=exports;elliptic.version=require("../package.json").version,elliptic.utils=require("./elliptic/utils"),elliptic.rand=require("brorand"),elliptic.curve=require("./elliptic/curve"),elliptic.curves=require("./elliptic/curves"),elliptic.ec=require("./elliptic/ec"),elliptic.eddsa=require("./elliptic/eddsa")},{"../package.json":134,"./elliptic/curve":121,"./elliptic/curves":124,"./elliptic/ec":125,"./elliptic/eddsa":128,"./elliptic/utils":132,brorand:40}],119:[function(require,module){"use strict";function BaseCurve(type,conf){this.type=type,this.p=new BN(conf.p,16),this.red=conf.prime?BN.red(conf.prime):BN.mont(this.p),this.zero=new BN(0).toRed(this.red),this.one=new BN(1).toRed(this.red),this.two=new BN(2).toRed(this.red),this.n=conf.n&&new BN(conf.n,16),this.g=conf.g&&this.pointFromJSON(conf.g,conf.gRed),this._wnafT1=[,,,,],this._wnafT2=[,,,,],this._wnafT3=[,,,,],this._wnafT4=[,,,,],this._bitLength=this.n?this.n.bitLength():0;var adjustCount=this.n&&this.p.div(this.n);!adjustCount||0=j;l--)nafW=(nafW<<1)+naf[l];repr.push(nafW)}for(var a=this.jpoint(null,null,null),b=this.jpoint(null,null,null),i=I;0i)break;var z=naf[i];assert(0!==z),acc="affine"===p.type?0>1]):acc.mixedAdd(wnd[-z-1>>1].neg()):0>1]):acc.add(wnd[-z-1>>1].neg())}return"affine"===p.type?acc.toP():acc},BaseCurve.prototype._wnafMulAdd=function(defW,points,coeffs,len,jacobianResult){var wndWidth=this._wnafT1,wnd=this._wnafT2,naf=this._wnafT3,max=0,i,j,p;for(i=0;ii)break;for(j=0;j>1]:0>z&&(p=wnd[j][-z-1>>1].neg());acc="affine"===p.type?acc.mixedAdd(p):acc.add(p)}}for(i=0;i=_Mathceil((k.bitLength()+1)/doubles.step)},BasePoint.prototype._getDoubles=function(step,power){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var doubles=[this],acc=this,i=0;i":""},Point.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},Point.prototype._extDbl=function(){var a=this.x.redSqr(),b=this.y.redSqr(),c=this.z.redSqr();c=c.redIAdd(c);var d=this.curve._mulA(a),e=this.x.redAdd(this.y).redSqr().redISub(a).redISub(b),g=d.redAdd(b),f=g.redSub(c),h=d.redSub(b),nx=e.redMul(f),ny=g.redMul(h),nt=e.redMul(h),nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)},Point.prototype._projDbl=function(){var b=this.x.redAdd(this.y).redSqr(),c=this.x.redSqr(),d=this.y.redSqr(),nx,ny,nz,e,h,j;if(this.curve.twisted){e=this.curve._mulA(c);var f=e.redAdd(d);this.zOne?(nx=b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)),ny=f.redMul(e.redSub(d)),nz=f.redSqr().redSub(f).redSub(f)):(h=this.z.redSqr(),j=f.redSub(h).redISub(h),nx=b.redSub(c).redISub(d).redMul(j),ny=f.redMul(e.redSub(d)),nz=f.redMul(j))}else e=c.redAdd(d),h=this.curve._mulC(this.z).redSqr(),j=e.redSub(h).redSub(h),nx=this.curve._mulC(b.redISub(e)).redMul(j),ny=this.curve._mulC(e).redMul(c.redISub(d)),nz=e.redMul(j);return this.curve.point(nx,ny,nz)},Point.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},Point.prototype._extAdd=function(p){var a=this.y.redSub(this.x).redMul(p.y.redSub(p.x)),b=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),c=this.t.redMul(this.curve.dd).redMul(p.t),d=this.z.redMul(p.z.redAdd(p.z)),e=b.redSub(a),f=d.redSub(c),g=d.redAdd(c),h=b.redAdd(a),nx=e.redMul(f),ny=g.redMul(h),nt=e.redMul(h),nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)},Point.prototype._projAdd=function(p){var a=this.z.redMul(p.z),b=a.redSqr(),c=this.x.redMul(p.x),d=this.y.redMul(p.y),e=this.curve.d.redMul(c).redMul(d),f=b.redSub(e),g=b.redAdd(e),tmp=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d),nx=a.redMul(f).redMul(tmp),ny,nz;return this.curve.twisted?(ny=a.redMul(g).redMul(d.redSub(this.curve._mulA(c))),nz=f.redMul(g)):(ny=a.redMul(g).redMul(d.redSub(c)),nz=this.curve._mulC(f).redMul(g)),this.curve.point(nx,ny,nz)},Point.prototype.add=function(p){return this.isInfinity()?p:p.isInfinity()?this:this.curve.extended?this._extAdd(p):this._projAdd(p)},Point.prototype.mul=function(k){return this._hasDoubles(k)?this.curve._fixedNafMul(this,k):this.curve._wnafMul(this,k)},Point.prototype.mulAdd=function(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,!1)},Point.prototype.jmulAdd=function(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,!0)},Point.prototype.normalize=function(){if(this.zOne)return this;var zi=this.z.redInvm();return this.x=this.x.redMul(zi),this.y=this.y.redMul(zi),this.t&&(this.t=this.t.redMul(zi)),this.z=this.curve.one,this.zOne=!0,this},Point.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()},Point.prototype.getY=function(){return this.normalize(),this.y.fromRed()},Point.prototype.eq=function(other){return this===other||0===this.getX().cmp(other.getX())&&0===this.getY().cmp(other.getY())},Point.prototype.eqXToP=function(x){var rx=x.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(rx))return!0;for(var xc=x.clone(),t=this.curve.redN.redMul(this.z);;){if(xc.iadd(this.curve.n),0<=xc.cmp(this.curve.p))return!1;if(rx.redIAdd(t),0===this.x.cmp(rx))return!0}},Point.prototype.toP=Point.prototype.normalize,Point.prototype.mixedAdd=Point.prototype.add},{"../utils":132,"./base":119,"bn.js":133,inherits:159}],121:[function(require,module,exports){"use strict";var curve=exports;curve.base=require("./base"),curve.short=require("./short"),curve.mont=require("./mont"),curve.edwards=require("./edwards")},{"./base":119,"./edwards":120,"./mont":122,"./short":123}],122:[function(require,module){"use strict";function MontCurve(conf){Base.call(this,"mont",conf),this.a=new BN(conf.a,16).toRed(this.red),this.b=new BN(conf.b,16).toRed(this.red),this.i4=new BN(4).toRed(this.red).redInvm(),this.two=new BN(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function Point(curve,x,z){Base.BasePoint.call(this,curve,"projective"),null===x&&null===z?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new BN(x,16),this.z=new BN(z,16),!this.x.red&&(this.x=this.x.toRed(this.curve.red)),!this.z.red&&(this.z=this.z.toRed(this.curve.red)))}var BN=require("bn.js"),inherits=require("inherits"),Base=require("./base"),utils=require("../utils");inherits(MontCurve,Base),module.exports=MontCurve,MontCurve.prototype.validate=function(point){var x=point.normalize().x,x2=x.redSqr(),rhs=x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x),y=rhs.redSqrt();return 0===y.redSqr().cmp(rhs)},inherits(Point,Base.BasePoint),MontCurve.prototype.decodePoint=function(bytes,enc){return this.point(utils.toArray(bytes,enc),1)},MontCurve.prototype.point=function(x,z){return new Point(this,x,z)},MontCurve.prototype.pointFromJSON=function(obj){return Point.fromJSON(this,obj)},Point.prototype.precompute=function(){},Point.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Point.fromJSON=function(curve,obj){return new Point(curve,obj[0],obj[1]||curve.one)},Point.prototype.inspect=function(){return this.isInfinity()?"":""},Point.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},Point.prototype.dbl=function(){var a=this.x.redAdd(this.z),aa=a.redSqr(),b=this.x.redSub(this.z),bb=b.redSqr(),c=aa.redSub(bb),nx=aa.redMul(bb),nz=c.redMul(bb.redAdd(this.curve.a24.redMul(c)));return this.curve.point(nx,nz)},Point.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Point.prototype.diffAdd=function(p,diff){var a=this.x.redAdd(this.z),b=this.x.redSub(this.z),c=p.x.redAdd(p.z),d=p.x.redSub(p.z),da=d.redMul(a),cb=c.redMul(b),nx=diff.z.redMul(da.redAdd(cb).redSqr()),nz=diff.x.redMul(da.redISub(cb).redSqr());return this.curve.point(nx,nz)},Point.prototype.mul=function(k){for(var t=k.clone(),a=this,b=this.curve.point(null,null),c=this,bits=[];0!==t.cmpn(0);t.iushrn(1))bits.push(t.andln(1));for(var i=bits.length-1;0<=i;i--)0===bits[i]?(a=a.diffAdd(b,c),b=b.dbl()):(b=a.diffAdd(b,c),a=a.dbl());return b},Point.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Point.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Point.prototype.eq=function(other){return 0===this.getX().cmp(other.getX())},Point.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{"../utils":132,"./base":119,"bn.js":133,inherits:159}],123:[function(require,module){"use strict";function ShortCurve(conf){Base.call(this,"short",conf),this.a=new BN(conf.a,16).toRed(this.red),this.b=new BN(conf.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(conf),this._endoWnafT1=[,,,,],this._endoWnafT2=[,,,,]}function Point(curve,x,y,isRed){Base.BasePoint.call(this,curve,"affine"),null===x&&null===y?(this.x=null,this.y=null,this.inf=!0):(this.x=new BN(x,16),this.y=new BN(y,16),isRed&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),!this.x.red&&(this.x=this.x.toRed(this.curve.red)),!this.y.red&&(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function JPoint(curve,x,y,z){Base.BasePoint.call(this,curve,"jacobian"),null===x&&null===y&&null===z?(this.x=this.curve.one,this.y=this.curve.one,this.z=new BN(0)):(this.x=new BN(x,16),this.y=new BN(y,16),this.z=new BN(z,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}var utils=require("../utils"),BN=require("bn.js"),inherits=require("inherits"),Base=require("./base"),assert=utils.assert;inherits(ShortCurve,Base),module.exports=ShortCurve,ShortCurve.prototype._getEndomorphism=function(conf){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var beta,lambda;if(conf.beta)beta=new BN(conf.beta,16).toRed(this.red);else{var betas=this._getEndoRoots(this.p);beta=0>betas[0].cmp(betas[1])?betas[0]:betas[1],beta=beta.toRed(this.red)}if(conf.lambda)lambda=new BN(conf.lambda,16);else{var lambdas=this._getEndoRoots(this.n);0===this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta))?lambda=lambdas[0]:(lambda=lambdas[1],assert(0===this.g.mul(lambda).x.cmp(this.g.x.redMul(beta))))}var basis;return basis=conf.basis?conf.basis.map(function(vec){return{a:new BN(vec.a,16),b:new BN(vec.b,16)}}):this._getEndoBasis(lambda),{beta:beta,lambda:lambda,basis:basis}}},ShortCurve.prototype._getEndoRoots=function(num){var red=num===this.p?this.red:BN.mont(num),tinv=new BN(2).toRed(red).redInvm(),ntinv=tinv.redNeg(),s=new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv),l1=ntinv.redAdd(s).fromRed(),l2=ntinv.redSub(s).fromRed();return[l1,l2]},ShortCurve.prototype._getEndoBasis=function(lambda){for(var aprxSqrt=this.n.ushrn(_Mathfloor(this.n.bitLength()/2)),u=lambda,v=this.n.clone(),x1=new BN(1),y1=new BN(0),x2=new BN(0),y2=new BN(1),i=0,a0,b0,a1,b1,a2,b2,prevR,r,x,q;0!==u.cmpn(0);){q=v.div(u),r=v.sub(q.mul(u)),x=x2.sub(q.mul(x1));var y=y2.sub(q.mul(y1));if(!a1&&0>r.cmp(aprxSqrt))a0=prevR.neg(),b0=x1,a1=r.neg(),b1=x;else if(a1&&2==++i)break;prevR=r,v=u,u=r,x2=x1,x1=x,y2=y1,y1=y}a2=r.neg(),b2=x;var len1=a1.sqr().add(b1.sqr()),len2=a2.sqr().add(b2.sqr());return 0<=len2.cmp(len1)&&(a2=a0,b2=b0),a1.negative&&(a1=a1.neg(),b1=b1.neg()),a2.negative&&(a2=a2.neg(),b2=b2.neg()),[{a:a1,b:b1},{a:a2,b:b2}]},ShortCurve.prototype._endoSplit=function(k){var basis=this.endo.basis,v1=basis[0],v2=basis[1],c1=v2.b.mul(k).divRound(this.n),c2=v1.b.neg().mul(k).divRound(this.n),p1=c1.mul(v1.a),p2=c2.mul(v2.a),q1=c1.mul(v1.b),q2=c2.mul(v2.b),k1=k.sub(p1).sub(p2),k2=q1.add(q2).neg();return{k1:k1,k2:k2}},ShortCurve.prototype.pointFromX=function(x,odd){x=new BN(x,16),x.red||(x=x.toRed(this.red));var y2=x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b),y=y2.redSqrt();if(0!==y.redSqr().redSub(y2).cmp(this.zero))throw new Error("invalid point");var isOdd=y.fromRed().isOdd();return(odd&&!isOdd||!odd&&isOdd)&&(y=y.redNeg()),this.point(x,y)},ShortCurve.prototype.validate=function(point){if(point.inf)return!0;var x=point.x,y=point.y,ax=this.a.redMul(x),rhs=x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);return 0===y.redSqr().redISub(rhs).cmpn(0)},ShortCurve.prototype._endoWnafMulAdd=function(points,coeffs,jacobianResult){for(var npoints=this._endoWnafT1,ncoeffs=this._endoWnafT2,i=0;i":""},Point.prototype.isInfinity=function(){return this.inf},Point.prototype.add=function(p){if(this.inf)return p;if(p.inf)return this;if(this.eq(p))return this.dbl();if(this.neg().eq(p))return this.curve.point(null,null);if(0===this.x.cmp(p.x))return this.curve.point(null,null);var c=this.y.redSub(p.y);0!==c.cmpn(0)&&(c=c.redMul(this.x.redSub(p.x).redInvm()));var nx=c.redSqr().redISub(this.x).redISub(p.x),ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)},Point.prototype.dbl=function(){if(this.inf)return this;var ys1=this.y.redAdd(this.y);if(0===ys1.cmpn(0))return this.curve.point(null,null);var a=this.curve.a,x2=this.x.redSqr(),dyinv=ys1.redInvm(),c=x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv),nx=c.redSqr().redISub(this.x.redAdd(this.x)),ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)},Point.prototype.getX=function(){return this.x.fromRed()},Point.prototype.getY=function(){return this.y.fromRed()},Point.prototype.mul=function(k){return k=new BN(k,16),this.isInfinity()?this:this._hasDoubles(k)?this.curve._fixedNafMul(this,k):this.curve.endo?this.curve._endoWnafMulAdd([this],[k]):this.curve._wnafMul(this,k)},Point.prototype.mulAdd=function(k1,p2,k2){var points=[this,p2],coeffs=[k1,k2];return this.curve.endo?this.curve._endoWnafMulAdd(points,coeffs):this.curve._wnafMulAdd(1,points,coeffs,2)},Point.prototype.jmulAdd=function(k1,p2,k2){var points=[this,p2],coeffs=[k1,k2];return this.curve.endo?this.curve._endoWnafMulAdd(points,coeffs,!0):this.curve._wnafMulAdd(1,points,coeffs,2,!0)},Point.prototype.eq=function(p){return this===p||this.inf===p.inf&&(this.inf||0===this.x.cmp(p.x)&&0===this.y.cmp(p.y))},Point.prototype.neg=function(_precompute){if(this.inf)return this;var res=this.curve.point(this.x,this.y.redNeg());if(_precompute&&this.precomputed){var pre=this.precomputed,negate=function(p){return p.neg()};res.precomputed={naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(negate)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(negate)}}}return res},Point.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var res=this.curve.jpoint(this.x,this.y,this.curve.one);return res},inherits(JPoint,Base.BasePoint),ShortCurve.prototype.jpoint=function(x,y,z){return new JPoint(this,x,y,z)},JPoint.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var zinv=this.z.redInvm(),zinv2=zinv.redSqr(),ax=this.x.redMul(zinv2),ay=this.y.redMul(zinv2).redMul(zinv);return this.curve.point(ax,ay)},JPoint.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint.prototype.add=function(p){if(this.isInfinity())return p;if(p.isInfinity())return this;var pz2=p.z.redSqr(),z2=this.z.redSqr(),u1=this.x.redMul(pz2),u2=p.x.redMul(z2),s1=this.y.redMul(pz2.redMul(p.z)),s2=p.y.redMul(z2.redMul(this.z)),h=u1.redSub(u2),r=s1.redSub(s2);if(0===h.cmpn(0))return 0===r.cmpn(0)?this.dbl():this.curve.jpoint(null,null,null);var h2=h.redSqr(),h3=h2.redMul(h),v=u1.redMul(h2),nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v),ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),nz=this.z.redMul(p.z).redMul(h);return this.curve.jpoint(nx,ny,nz)},JPoint.prototype.mixedAdd=function(p){if(this.isInfinity())return p.toJ();if(p.isInfinity())return this;var z2=this.z.redSqr(),u1=this.x,u2=p.x.redMul(z2),s1=this.y,s2=p.y.redMul(z2).redMul(this.z),h=u1.redSub(u2),r=s1.redSub(s2);if(0===h.cmpn(0))return 0===r.cmpn(0)?this.dbl():this.curve.jpoint(null,null,null);var h2=h.redSqr(),h3=h2.redMul(h),v=u1.redMul(h2),nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v),ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),nz=this.z.redMul(h);return this.curve.jpoint(nx,ny,nz)},JPoint.prototype.dblp=function(pow){if(0===pow)return this;if(this.isInfinity())return this;if(!pow)return this.dbl();var i;if(this.curve.zeroA||this.curve.threeA){var r=this;for(i=0;i":""},JPoint.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},{"../utils":132,"./base":119,"bn.js":133,inherits:159}],124:[function(require,module,exports){"use strict";function PresetCurve(options){this.curve="short"===options.type?new curve.short(options):"edwards"===options.type?new curve.edwards(options):new curve.mont(options),this.g=this.curve.g,this.n=this.curve.n,this.hash=options.hash,assert(this.g.validate(),"Invalid curve"),assert(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function defineCurve(name,options){Object.defineProperty(curves,name,{configurable:!0,enumerable:!0,get:function(){var curve=new PresetCurve(options);return Object.defineProperty(curves,name,{configurable:!0,enumerable:!0,value:curve}),curve}})}var curves=exports,hash=require("hash.js"),curve=require("./curve"),utils=require("./utils"),assert=utils.assert;curves.PresetCurve=PresetCurve,defineCurve("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:hash.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),defineCurve("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:hash.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),defineCurve("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:hash.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),defineCurve("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:hash.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),defineCurve("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:hash.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),defineCurve("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:!1,g:["9"]}),defineCurve("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var pre;try{pre=require("./precomputed/secp256k1")}catch(e){pre=void 0}defineCurve("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:hash.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",pre]})},{"./curve":121,"./precomputed/secp256k1":131,"./utils":132,"hash.js":143}],125:[function(require,module){"use strict";function EC(options){return this instanceof EC?void("string"==typeof options&&(assert(Object.prototype.hasOwnProperty.call(curves,options),"Unknown curve "+options),options=curves[options]),options instanceof curves.PresetCurve&&(options={curve:options}),this.curve=options.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=options.curve.g,this.g.precompute(options.curve.n.bitLength()+1),this.hash=options.hash||options.curve.hash):new EC(options)}var BN=require("bn.js"),HmacDRBG=require("hmac-drbg"),utils=require("../utils"),curves=require("../curves"),rand=require("brorand"),assert=utils.assert,KeyPair=require("./key"),Signature=require("./signature");module.exports=EC,EC.prototype.keyPair=function(options){return new KeyPair(this,options)},EC.prototype.keyFromPrivate=function(priv,enc){return KeyPair.fromPrivate(this,priv,enc)},EC.prototype.keyFromPublic=function(pub,enc){return KeyPair.fromPublic(this,pub,enc)},EC.prototype.genKeyPair=function(options){options||(options={});for(var drbg=new HmacDRBG({hash:this.hash,pers:options.pers,persEnc:options.persEnc||"utf8",entropy:options.entropy||rand(this.hash.hmacStrength),entropyEnc:options.entropy&&options.entropyEnc||"utf8",nonce:this.n.toArray()}),bytes=this.n.byteLength(),ns2=this.n.sub(new BN(2));;){var priv=new BN(drbg.generate(bytes));if(!(0=k.cmpn(1)||0<=k.cmp(ns1))){var kp=this.g.mul(k);if(!kp.isInfinity()){var kpX=kp.getX(),r=kpX.umod(this.n);if(0!==r.cmpn(0)){var s=k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));if(s=s.umod(this.n),0!==s.cmpn(0)){var recoveryParam=(kp.getY().isOdd()?1:0)|(0===kpX.cmp(r)?0:2);return options.canonical&&0r.cmpn(1)||0<=r.cmp(this.n))return!1;if(0>s.cmpn(1)||0<=s.cmp(this.n))return!1;var sinv=s.invm(this.n),u1=sinv.mul(msg).umod(this.n),u2=sinv.mul(r).umod(this.n),p;return this.curve._maxwellTrick?(p=this.g.jmulAdd(u1,key.getPublic(),u2),!p.isInfinity()&&p.eqXToP(r)):(p=this.g.mulAdd(u1,key.getPublic(),u2),!p.isInfinity()&&0===p.getX().umod(this.n).cmp(r))},EC.prototype.recoverPubKey=function(msg,signature,j,enc){assert((3&j)===j,"The recovery param is more than two bits"),signature=new Signature(signature,enc);var n=this.n,e=new BN(msg),r=signature.r,s=signature.s,isYOdd=1&j,isSecondKey=j>>1;if(0<=r.cmp(this.curve.p.umod(this.curve.n))&&isSecondKey)throw new Error("Unable to find sencond key candinate");r=isSecondKey?this.curve.pointFromX(r.add(this.curve.n),isYOdd):this.curve.pointFromX(r,isYOdd);var rInv=signature.r.invm(n),s1=n.sub(e).mul(rInv).umod(n),s2=s.mul(rInv).umod(n);return this.g.mulAdd(s1,r,s2)},EC.prototype.getKeyRecoveryParam=function(e,signature,Q,enc){if(signature=new Signature(signature,enc),null!==signature.recoveryParam)return signature.recoveryParam;for(var i=0;4>i;i++){var Qprime;try{Qprime=this.recoverPubKey(e,signature,i)}catch(e){continue}if(Qprime.eq(Q))return i}throw new Error("Unable to find valid recovery factor")}},{"../curves":124,"../utils":132,"./key":126,"./signature":127,"bn.js":133,brorand:40,"hmac-drbg":155}],126:[function(require,module){"use strict";function KeyPair(ec,options){this.ec=ec,this.priv=null,this.pub=null,options.priv&&this._importPrivate(options.priv,options.privEnc),options.pub&&this._importPublic(options.pub,options.pubEnc)}var BN=require("bn.js"),utils=require("../utils"),assert=utils.assert;module.exports=KeyPair,KeyPair.fromPublic=function(ec,pub,enc){return pub instanceof KeyPair?pub:new KeyPair(ec,{pub:pub,pubEnc:enc})},KeyPair.fromPrivate=function(ec,priv,enc){return priv instanceof KeyPair?priv:new KeyPair(ec,{priv:priv,privEnc:enc})},KeyPair.prototype.validate=function(){var pub=this.getPublic();return pub.isInfinity()?{result:!1,reason:"Invalid public key"}:pub.validate()?pub.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},KeyPair.prototype.getPublic=function(compact,enc){return"string"==typeof compact&&(enc=compact,compact=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),enc?this.pub.encode(enc,compact):this.pub},KeyPair.prototype.getPrivate=function(enc){return"hex"===enc?this.priv.toString(16,2):this.priv},KeyPair.prototype._importPrivate=function(key,enc){this.priv=new BN(key,enc||16),this.priv=this.priv.umod(this.ec.curve.n)},KeyPair.prototype._importPublic=function(key,enc){return key.x||key.y?("mont"===this.ec.curve.type?assert(key.x,"Need x coordinate"):("short"===this.ec.curve.type||"edwards"===this.ec.curve.type)&&assert(key.x&&key.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(key.x,key.y))):void(this.pub=this.ec.curve.decodePoint(key,enc))},KeyPair.prototype.derive=function(pub){return pub.validate()||assert(pub.validate(),"public point not validated"),pub.mul(this.priv).getX()},KeyPair.prototype.sign=function(msg,enc,options){return this.ec.sign(msg,this,enc,options)},KeyPair.prototype.verify=function(msg,signature){return this.ec.verify(msg,signature,this)},KeyPair.prototype.inspect=function(){return""}},{"../utils":132,"bn.js":133}],127:[function(require,module){"use strict";function Signature(options,enc){return options instanceof Signature?options:void(this._importDER(options,enc)||(assert(options.r&&options.s,"Signature without r or s"),this.r=new BN(options.r,16),this.s=new BN(options.s,16),this.recoveryParam=void 0===options.recoveryParam?null:options.recoveryParam))}function Position(){this.place=0}function getLength(buf,p){var initial=buf[p.place++];if(!(128&initial))return initial;var octetLen=15&initial;if(0==octetLen||4>>=0;return!(127>=val)&&(p.place=off,val)}function rmPadding(buf){for(var i=0,len=buf.length-1;!buf[i]&&!(128&buf[i+1])&&ilen)return void arr.push(len);var octets=1+(_Mathlog2(len)/_MathLN>>>3);for(arr.push(128|octets);--octets;)arr.push(255&len>>>(octets<<3));arr.push(len)}var BN=require("bn.js"),utils=require("../utils"),assert=utils.assert;module.exports=Signature,Signature.prototype._importDER=function(data,enc){data=utils.toArray(data,enc);var p=new Position;if(48!==data[p.place++])return!1;var len=getLength(data,p);if(!1===len)return!1;if(len+p.place!==data.length)return!1;if(2!==data[p.place++])return!1;var rlen=getLength(data,p);if(!1===rlen)return!1;var r=data.slice(p.place,rlen+p.place);if(p.place+=rlen,2!==data[p.place++])return!1;var slen=getLength(data,p);if(!1===slen)return!1;if(data.length!==slen+p.place)return!1;var s=data.slice(p.place,slen+p.place);if(0===r[0])if(128&r[1])r=r.slice(1);else return!1;if(0===s[0])if(128&s[1])s=s.slice(1);else return!1;return this.r=new BN(r),this.s=new BN(s),this.recoveryParam=null,!0},Signature.prototype.toDER=function(enc){var r=this.r.toArray(),s=this.s.toArray();for(128&r[0]&&(r=[0].concat(r)),128&s[0]&&(s=[0].concat(s)),r=rmPadding(r),s=rmPadding(s);!s[0]&&!(128&s[1]);)s=s.slice(1);var arr=[2];constructLength(arr,r.length),arr=arr.concat(r),arr.push(2),constructLength(arr,s.length);var backHalf=arr.concat(s),res=[48];return constructLength(res,backHalf.length),res=res.concat(backHalf),utils.encode(res,enc)}},{"../utils":132,"bn.js":133}],128:[function(require,module){"use strict";function EDDSA(curve){return assert("ed25519"===curve,"only tested with ed25519 so far"),this instanceof EDDSA?void(curve=curves[curve].curve,this.curve=curve,this.g=curve.g,this.g.precompute(curve.n.bitLength()+1),this.pointClass=curve.point().constructor,this.encodingLength=_Mathceil(curve.n.bitLength()/8),this.hash=hash.sha512):new EDDSA(curve)}var hash=require("hash.js"),curves=require("../curves"),utils=require("../utils"),assert=utils.assert,parseBytes=utils.parseBytes,KeyPair=require("./key"),Signature=require("./signature");module.exports=EDDSA,EDDSA.prototype.sign=function(message,secret){message=parseBytes(message);var key=this.keyFromSecret(secret),r=this.hashInt(key.messagePrefix(),message),R=this.g.mul(r),Rencoded=this.encodePoint(R),s_=this.hashInt(Rencoded,key.pubBytes(),message).mul(key.priv()),S=r.add(s_).umod(this.curve.n);return this.makeSignature({R:R,S:S,Rencoded:Rencoded})},EDDSA.prototype.verify=function(message,sig,pub){message=parseBytes(message),sig=this.makeSignature(sig);var key=this.keyFromPublic(pub),h=this.hashInt(sig.Rencoded(),key.pubBytes(),message),SG=this.g.mul(sig.S()),RplusAh=sig.R().add(key.pub().mul(h));return RplusAh.eq(SG)},EDDSA.prototype.hashInt=function(){for(var hash=this.hash(),i=0;i(ws>>1)-1?(ws>>1)-mod:mod,k.isubn(z)):z=0,naf[i]=z,k.iushrn(1)}return naf},utils.getJSF=function(k1,k2){var jsf=[[],[]];k1=k1.clone(),k2=k2.clone();for(var d1=0,d2=0,m8;0{this.push(toBuffer(reader.result))},reader.onerror=()=>{this.emit("error",reader.error)},this.reader=reader,this._generateHeaderBlocks(file,opts,(err,blocks)=>err?this.emit("error",err):void(Array.isArray(blocks)&&blocks.forEach(block=>this.push(block)),this._ready=!0,this.emit("_ready")))}_generateHeaderBlocks(file,opts,callback){callback(null,[])}_read(){if(!this._ready)return void this.once("_ready",this._read.bind(this));const startOffset=this._offset;let endOffset=this._offset+this._chunkSize;return endOffset>this._size&&(endOffset=this._size),startOffset===this._size?(this.destroy(),void this.push(null)):void(this.reader.readAsArrayBuffer(this._file.slice(startOffset,endOffset)),this._offset=endOffset)}destroy(){if(this._file=null,this.reader){this.reader.onload=null,this.reader.onerror=null;try{this.reader.abort()}catch(e){}}this.reader=null}}},{"readable-stream":240,"typedarray-to-buffer":282}],141:[function(require,module){module.exports=function(){if("undefined"==typeof globalThis)return null;var wrtc={RTCPeerConnection:globalThis.RTCPeerConnection||globalThis.mozRTCPeerConnection||globalThis.webkitRTCPeerConnection,RTCSessionDescription:globalThis.RTCSessionDescription||globalThis.mozRTCSessionDescription||globalThis.webkitRTCSessionDescription,RTCIceCandidate:globalThis.RTCIceCandidate||globalThis.mozRTCIceCandidate||globalThis.webkitRTCIceCandidate};return wrtc.RTCPeerConnection?wrtc:null}},{}],142:[function(require,module){"use strict";function throwIfNotStringOrBuffer(val,prefix){if(!Buffer.isBuffer(val)&&"string"!=typeof val)throw new TypeError(prefix+" must be a string or a buffer")}function HashBase(blockSize){Transform.call(this),this._block=Buffer.allocUnsafe(blockSize),this._blockSize=blockSize,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}var Buffer=require("safe-buffer").Buffer,Transform=require("readable-stream").Transform,inherits=require("inherits");inherits(HashBase,Transform),HashBase.prototype._transform=function(chunk,encoding,callback){var error=null;try{this.update(chunk,encoding)}catch(err){error=err}callback(error)},HashBase.prototype._flush=function(callback){var error=null;try{this.push(this.digest())}catch(err){error=err}callback(error)},HashBase.prototype.update=function(data,encoding){if(throwIfNotStringOrBuffer(data,"Data"),this._finalized)throw new Error("Digest already called");Buffer.isBuffer(data)||(data=Buffer.from(data,encoding));for(var block=this._block,offset=0;this._blockOffset+data.length-offset>=this._blockSize;){for(var i=this._blockOffset;ii;++i)this._length[i]=0;return digest},HashBase.prototype._digest=function(){throw new Error("_digest is not implemented")},module.exports=HashBase},{inherits:159,"readable-stream":240,"safe-buffer":247}],143:[function(require,module,exports){var hash=exports;hash.utils=require("./hash/utils"),hash.common=require("./hash/common"),hash.sha=require("./hash/sha"),hash.ripemd=require("./hash/ripemd"),hash.hmac=require("./hash/hmac"),hash.sha1=hash.sha.sha1,hash.sha256=hash.sha.sha256,hash.sha224=hash.sha.sha224,hash.sha384=hash.sha.sha384,hash.sha512=hash.sha.sha512,hash.ripemd160=hash.ripemd.ripemd160},{"./hash/common":144,"./hash/hmac":145,"./hash/ripemd":146,"./hash/sha":147,"./hash/utils":154}],144:[function(require,module,exports){"use strict";function BlockHash(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var utils=require("./utils"),assert=require("minimalistic-assert");exports.BlockHash=BlockHash,BlockHash.prototype.update=function(msg,enc){if(msg=utils.toArray(msg,enc),this.pending=this.pending?this.pending.concat(msg):msg,this.pendingTotal+=msg.length,this.pending.length>=this._delta8){msg=this.pending;var r=msg.length%this._delta8;this.pending=msg.slice(msg.length-r,msg.length),0===this.pending.length&&(this.pending=null),msg=utils.join32(msg,0,msg.length-r,this.endian);for(var i=0;i>>24,res[i++]=255&len>>>16,res[i++]=255&len>>>8,res[i++]=255&len}else for(res[i++]=255&len,res[i++]=255&len>>>8,res[i++]=255&len>>>16,res[i++]=255&len>>>24,res[i++]=0,res[i++]=0,res[i++]=0,res[i++]=0,t=8;tthis.blockSize&&(key=new this.Hash().update(key).digest()),assert(key.length<=this.blockSize);for(var i=key.length;i=j?x^y^z:31>=j?x&y|~x&z:47>=j?(x|~y)^z:63>=j?x&z|y&~z:x^(y|~z)}function K(j){return 15>=j?0:31>=j?1518500249:47>=j?1859775393:63>=j?2400959708:2840853838}function Kh(j){return 15>=j?1352829926:31>=j?1548603684:47>=j?1836072691:63>=j?2053994217:0}var utils=require("./utils"),common=require("./common"),rotl32=utils.rotl32,sum32=utils.sum32,sum32_3=utils.sum32_3,sum32_4=utils.sum32_4,BlockHash=common.BlockHash;utils.inherits(RIPEMD160,BlockHash),exports.ripemd160=RIPEMD160,RIPEMD160.blockSize=512,RIPEMD160.outSize=160,RIPEMD160.hmacStrength=192,RIPEMD160.padLength=64,RIPEMD160.prototype._update=function(msg,start){for(var A=this.h[0],B=this.h[1],C=this.h[2],D=this.h[3],E=this.h[4],Ah=A,Bh=B,Ch=C,Dh=D,Eh=E,j=0,T;80>j;j++)T=sum32(rotl32(sum32_4(A,f(j,B,C,D),msg[r[j]+start],K(j)),s[j]),E),A=E,E=D,D=rotl32(C,10),C=B,B=T,T=sum32(rotl32(sum32_4(Ah,f(79-j,Bh,Ch,Dh),msg[rh[j]+start],Kh(j)),sh[j]),Eh),Ah=Eh,Eh=Dh,Dh=rotl32(Ch,10),Ch=Bh,Bh=T;T=sum32_3(this.h[1],C,Dh),this.h[1]=sum32_3(this.h[2],D,Eh),this.h[2]=sum32_3(this.h[3],E,Ah),this.h[3]=sum32_3(this.h[4],A,Bh),this.h[4]=sum32_3(this.h[0],B,Ch),this.h[0]=T},RIPEMD160.prototype._digest=function(enc){return"hex"===enc?utils.toHex32(this.h,"little"):utils.split32(this.h,"little")};var r=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],rh=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],s=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sh=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},{"./common":144,"./utils":154}],147:[function(require,module,exports){"use strict";exports.sha1=require("./sha/1"),exports.sha224=require("./sha/224"),exports.sha256=require("./sha/256"),exports.sha384=require("./sha/384"),exports.sha512=require("./sha/512")},{"./sha/1":148,"./sha/224":149,"./sha/256":150,"./sha/384":151,"./sha/512":152}],148:[function(require,module){"use strict";function SHA1(){return this instanceof SHA1?void(BlockHash.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=Array(80)):new SHA1}var utils=require("../utils"),common=require("../common"),shaCommon=require("./common"),rotl32=utils.rotl32,sum32=utils.sum32,sum32_5=utils.sum32_5,ft_1=shaCommon.ft_1,BlockHash=common.BlockHash,sha1_K=[1518500249,1859775393,2400959708,3395469782];utils.inherits(SHA1,BlockHash),module.exports=SHA1,SHA1.blockSize=512,SHA1.outSize=160,SHA1.hmacStrength=80,SHA1.padLength=64,SHA1.prototype._update=function(msg,start){for(var W=this.W,i=0;16>i;i++)W[i]=msg[start+i];for(;ii;i++)W[i]=msg[start+i];for(;ir&&(r+=4294967296),r}function ch64_lo(xh,xl,yh,yl,zh,zl){var r=xl&yl^~xl&zl;return 0>r&&(r+=4294967296),r}function maj64_hi(xh,xl,yh,yl,zh){var r=xh&yh^xh&zh^yh&zh;return 0>r&&(r+=4294967296),r}function maj64_lo(xh,xl,yh,yl,zh,zl){var r=xl&yl^xl&zl^yl&zl;return 0>r&&(r+=4294967296),r}function s0_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,28),c1_hi=rotr64_hi(xl,xh,2),c2_hi=rotr64_hi(xl,xh,7),r=c0_hi^c1_hi^c2_hi;return 0>r&&(r+=4294967296),r}function s0_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,28),c1_lo=rotr64_lo(xl,xh,2),c2_lo=rotr64_lo(xl,xh,7),r=c0_lo^c1_lo^c2_lo;return 0>r&&(r+=4294967296),r}function s1_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,14),c1_hi=rotr64_hi(xh,xl,18),c2_hi=rotr64_hi(xl,xh,9),r=c0_hi^c1_hi^c2_hi;return 0>r&&(r+=4294967296),r}function s1_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,14),c1_lo=rotr64_lo(xh,xl,18),c2_lo=rotr64_lo(xl,xh,9),r=c0_lo^c1_lo^c2_lo;return 0>r&&(r+=4294967296),r}function g0_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,1),c1_hi=rotr64_hi(xh,xl,8),c2_hi=shr64_hi(xh,xl,7),r=c0_hi^c1_hi^c2_hi;return 0>r&&(r+=4294967296),r}function g0_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,1),c1_lo=rotr64_lo(xh,xl,8),c2_lo=shr64_lo(xh,xl,7),r=c0_lo^c1_lo^c2_lo;return 0>r&&(r+=4294967296),r}function g1_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,19),c1_hi=rotr64_hi(xl,xh,29),c2_hi=shr64_hi(xh,xl,6),r=c0_hi^c1_hi^c2_hi;return 0>r&&(r+=4294967296),r}function g1_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,19),c1_lo=rotr64_lo(xl,xh,29),c2_lo=shr64_lo(xh,xl,6),r=c0_lo^c1_lo^c2_lo;return 0>r&&(r+=4294967296),r}var utils=require("../utils"),common=require("../common"),assert=require("minimalistic-assert"),rotr64_hi=utils.rotr64_hi,rotr64_lo=utils.rotr64_lo,shr64_hi=utils.shr64_hi,shr64_lo=utils.shr64_lo,sum64=utils.sum64,sum64_hi=utils.sum64_hi,sum64_lo=utils.sum64_lo,sum64_4_hi=utils.sum64_4_hi,sum64_4_lo=utils.sum64_4_lo,sum64_5_hi=utils.sum64_5_hi,sum64_5_lo=utils.sum64_5_lo,BlockHash=common.BlockHash,sha512_K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];utils.inherits(SHA512,BlockHash),module.exports=SHA512,SHA512.blockSize=1024,SHA512.outSize=512,SHA512.hmacStrength=192,SHA512.padLength=128,SHA512.prototype._prepareBlock=function(msg,start){for(var W=this.W,i=0;32>i;i++)W[i]=msg[start+i];for(;i>>3},exports.g1_256=function(x){return rotr32(x,17)^rotr32(x,19)^x>>>10}},{"../utils":154}],154:[function(require,module,exports){"use strict";function isSurrogatePair(msg,i){return!(55296!=(64512&msg.charCodeAt(i)))&&!(0>i||i+1>=msg.length)&&56320==(64512&msg.charCodeAt(i+1))}function htonl(w){return(w>>>24|65280&w>>>8|16711680&w<<8|(255&w)<<24)>>>0}function zero2(word){return 1===word.length?"0"+word:word}function zero8(word){return 7===word.length?"0"+word:6===word.length?"00"+word:5===word.length?"000"+word:4===word.length?"0000"+word:3===word.length?"00000"+word:2===word.length?"000000"+word:1===word.length?"0000000"+word:word}var assert=require("minimalistic-assert"),inherits=require("inherits");exports.inherits=inherits,exports.toArray=function(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(!("string"==typeof msg))for(i=0;ic?res[p++]=c:2048>c?(res[p++]=192|c>>6,res[p++]=128|63&c):isSurrogatePair(msg,i)?(c=65536+((1023&c)<<10)+(1023&msg.charCodeAt(++i)),res[p++]=240|c>>18,res[p++]=128|63&c>>12,res[p++]=128|63&c>>6,res[p++]=128|63&c):(res[p++]=224|c>>12,res[p++]=128|63&c>>6,res[p++]=128|63&c);else if("hex"===enc)for(msg=msg.replace(/[^a-z0-9]+/ig,""),0!=msg.length%2&&(msg="0"+msg),i=0;i>>0}return res},exports.split32=function(msg,endian){for(var res=Array(4*msg.length),i=0,k=0,m;i>>24,res[k+1]=255&m>>>16,res[k+2]=255&m>>>8,res[k+3]=255&m):(res[k+3]=m>>>24,res[k+2]=255&m>>>16,res[k+1]=255&m>>>8,res[k]=255&m);return res},exports.rotr32=function(w,b){return w>>>b|w<<32-b},exports.rotl32=function(w,b){return w<>>32-b},exports.sum32=function(a,b){return a+b>>>0},exports.sum32_3=function(a,b,c){return a+b+c>>>0},exports.sum32_4=function(a,b,c,d){return a+b+c+d>>>0},exports.sum32_5=function(a,b,c,d,e){return a+b+c+d+e>>>0},exports.sum64=function(buf,pos,ah,al){var bh=buf[pos],bl=buf[pos+1],lo=al+bl>>>0,hi=(lo>>0,buf[pos+1]=lo},exports.sum64_hi=function(ah,al,bh,bl){var hi=(al+bl>>>0>>0},exports.sum64_lo=function(ah,al,bh,bl){return al+bl>>>0},exports.sum64_4_hi=function(ah,al,bh,bl,ch,cl,dh,dl){var carry=0,lo=al;lo=lo+bl>>>0,carry+=lo>>0,carry+=lo>>0,carry+=lo>>0},exports.sum64_4_lo=function(ah,al,bh,bl,ch,cl,dh,dl){return al+bl+cl+dl>>>0},exports.sum64_5_hi=function(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var carry=0,lo=al;lo=lo+bl>>>0,carry+=lo>>0,carry+=lo>>0,carry+=lo>>0,carry+=lo>>0},exports.sum64_5_lo=function(ah,al,bh,bl,ch,cl,dh,dl,eh,el){return al+bl+cl+dl+el>>>0},exports.rotr64_hi=function(ah,al,num){return(al<<32-num|ah>>>num)>>>0},exports.rotr64_lo=function(ah,al,num){return(ah<<32-num|al>>>num)>>>0},exports.shr64_hi=function(ah,al,num){return ah>>>num},exports.shr64_lo=function(ah,al,num){return(ah<<32-num|al>>>num)>>>0}},{inherits:159,"minimalistic-assert":180}],155:[function(require,module){"use strict";function HmacDRBG(options){if(!(this instanceof HmacDRBG))return new HmacDRBG(options);this.hash=options.hash,this.predResist=!!options.predResist,this.outLen=this.hash.outSize,this.minEntropy=options.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var entropy=utils.toArray(options.entropy,options.entropyEnc||"hex"),nonce=utils.toArray(options.nonce,options.nonceEnc||"hex"),pers=utils.toArray(options.pers,options.persEnc||"hex");assert(entropy.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(entropy,nonce,pers)}var hash=require("hash.js"),utils=require("minimalistic-crypto-utils"),assert=require("minimalistic-assert");module.exports=HmacDRBG,HmacDRBG.prototype._init=function(entropy,nonce,pers){var seed=entropy.concat(nonce).concat(pers);this.K=Array(this.outLen/8),this.V=Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(entropy.concat(add||[])),this._reseed=1},HmacDRBG.prototype.generate=function(len,enc,add,addEnc){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof enc&&(addEnc=add,add=enc,enc=null),add&&(add=utils.toArray(add,addEnc||"hex"),this._update(add));for(var temp=[];temp.length */exports.read=function(buffer,offset,isLE,mLen,nBytes){var eLen=8*nBytes-mLen-1,eMax=(1<>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i],e,m;for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;0>=-nBits,nBits+=mLen;0>1,rt=23===mLen?_Mathpow(2,-24)-_Mathpow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=0>value||0===value&&0>1/value?1:0,e,m,c;for(value=_Mathabs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=_Mathfloor(_Mathlog2(value)/_MathLN),1>value*(c=_Mathpow(2,-e))&&(e--,c*=2),value+=1<=e+eBias?rt/c:rt*_Mathpow(2,1-eBias),2<=value*c&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):1<=e+eBias?(m=(value*c-1)*_Mathpow(2,mLen),e+=eBias):(m=value*_Mathpow(2,eBias-1)*_Mathpow(2,mLen),e=0));8<=mLen;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e< */const queueMicrotask=require("queue-microtask");module.exports=class{constructor(store){if(this.store=store,this.chunkLength=store.chunkLength,!this.store||!this.store.get||!this.store.put)throw new Error("First argument must be abstract-chunk-store compliant");this.mem=[]}put(index,buf,cb=()=>{}){this.mem[index]=buf,this.store.put(index,buf,err=>{this.mem[index]=null,cb(err)})}get(index,opts,cb=()=>{}){if("function"==typeof opts)return this.get(index,null,opts);let buf=this.mem[index];if(!buf)return this.store.get(index,opts,cb);opts||(opts={});const offset=opts.offset||0,len=opts.length||buf.length-offset;(0!==offset||len!==buf.length)&&(buf=buf.slice(offset,len+offset)),queueMicrotask(()=>cb(null,buf))}close(cb=()=>{}){this.store.close(cb)}destroy(cb=()=>{}){this.store.destroy(cb)}}},{"queue-microtask":218}],159:[function(require,module){module.exports="function"==typeof Object.create?function(ctor,superCtor){superCtor&&(ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}}))}:function(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}}},{}],160:[function(require,module){module.exports=function(str){for(var i=0,strLen=str.length;i127)return!1;return!0}},{}],161:[function(require,module){function isBuffer(obj){return!!obj.constructor&&"function"==typeof obj.constructor.isBuffer&&obj.constructor.isBuffer(obj)}function isSlowBuffer(obj){return"function"==typeof obj.readFloatLE&&"function"==typeof obj.slice&&isBuffer(obj.slice(0,0))}/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */module.exports=function(obj){return null!=obj&&(isBuffer(obj)||isSlowBuffer(obj)||!!obj._isBuffer)}},{}],162:[function(require,module){function isTypedArray(arr){return isStrictTypedArray(arr)||isLooseTypedArray(arr)}function isStrictTypedArray(arr){return arr instanceof Int8Array||arr instanceof Int16Array||arr instanceof Int32Array||arr instanceof Uint8Array||arr instanceof Uint8ClampedArray||arr instanceof Uint16Array||arr instanceof Uint32Array||arr instanceof Float32Array||arr instanceof Float64Array}function isLooseTypedArray(arr){return names[toString.call(arr)]}module.exports=isTypedArray,isTypedArray.strict=isStrictTypedArray,isTypedArray.loose=isLooseTypedArray;var toString=Object.prototype.toString,names={"[object Int8Array]":!0,"[object Int16Array]":!0,"[object Int32Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Uint16Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0}},{}],163:[function(require,module,exports){"use strict";exports.re=()=>{throw new Error("`junk.re` was renamed to `junk.regex`")},exports.regex=new RegExp(["^npm-debug\\.log$","^\\..*\\.swp$","^\\.DS_Store$","^\\.AppleDouble$","^\\.LSOverride$","^Icon\\r$","^\\._.*","^\\.Spotlight-V100(?:$|\\/)","\\.Trashes","^__MACOSX$","~$","^Thumbs\\.db$","^ehthumbs\\.db$","^Desktop\\.ini$","@eaDir$"].join("|")),exports.is=filename=>exports.regex.test(filename),exports.not=filename=>!exports.is(filename),exports.default=module.exports},{}],164:[function(require,module,exports){exports.RateLimiter=require("./lib/rateLimiter"),exports.TokenBucket=require("./lib/tokenBucket")},{"./lib/rateLimiter":166,"./lib/tokenBucket":167}],165:[function(require,module){(function(process){(function(){module.exports=function(){if("undefined"!=typeof process&&process.hrtime){var hrtime=process.hrtime(),seconds=hrtime[0],nanoseconds=hrtime[1];return 1e3*seconds+_Mathfloor(nanoseconds/1e6)}return new Date().getTime()}}).call(this)}).call(this,require("_process"))},{_process:205}],166:[function(require,module){(function(process){(function(){var TokenBucket=require("./tokenBucket"),getMilliseconds=require("./clock"),RateLimiter=function(tokensPerInterval,interval,fireImmediately){this.tokenBucket=new TokenBucket(tokensPerInterval,tokensPerInterval,interval,null),this.tokenBucket.content=tokensPerInterval,this.curIntervalStart=getMilliseconds(),this.tokensThisInterval=0,this.fireImmediately=fireImmediately};RateLimiter.prototype={tokenBucket:null,curIntervalStart:0,tokensThisInterval:0,fireImmediately:!1,removeTokens:function(count,callback){function afterTokensRemoved(err,tokensRemaining){return err?callback(err,null):void(self.tokensThisInterval+=count,callback(null,tokensRemaining))}if(count>this.tokenBucket.bucketSize)return process.nextTick(callback.bind(null,"Requested tokens "+count+" exceeds maximum tokens per interval "+this.tokenBucket.bucketSize,null)),!1;var self=this,now=getMilliseconds();if((now=this.tokenBucket.interval)&&(this.curIntervalStart=now,this.tokensThisInterval=0),count>this.tokenBucket.tokensPerInterval-this.tokensThisInterval){if(this.fireImmediately)process.nextTick(callback.bind(null,null,-1));else{var waitInterval=_Mathceil(this.curIntervalStart+this.tokenBucket.interval-now);setTimeout(function(){self.tokenBucket.removeTokens(count,afterTokensRemoved)},waitInterval)}return!1}return this.tokenBucket.removeTokens(count,afterTokensRemoved)},tryRemoveTokens:function(count){if(count>this.tokenBucket.bucketSize)return!1;var now=getMilliseconds();if((now=this.tokenBucket.interval)&&(this.curIntervalStart=now,this.tokensThisInterval=0),count>this.tokenBucket.tokensPerInterval-this.tokensThisInterval)return!1;var removed=this.tokenBucket.tryRemoveTokens(count);return removed&&(this.tokensThisInterval+=count),removed},getTokensRemaining:function(){return this.tokenBucket.drip(),this.tokenBucket.content}},module.exports=RateLimiter}).call(this)}).call(this,require("_process"))},{"./clock":165,"./tokenBucket":167,_process:205}],167:[function(require,module){(function(process){(function(){var TokenBucket=function(bucketSize,tokensPerInterval,interval,parentBucket){if(this.bucketSize=bucketSize,this.tokensPerInterval=tokensPerInterval,"string"==typeof interval)switch(interval){case"sec":case"second":this.interval=1e3;break;case"min":case"minute":this.interval=60000;break;case"hr":case"hour":this.interval=3600000;break;case"day":this.interval=86400000;break;default:throw new Error("Invaid interval "+interval);}else this.interval=interval;this.parentBucket=parentBucket,this.content=0,this.lastDrip=+new Date};TokenBucket.prototype={bucketSize:1,tokensPerInterval:1,interval:1e3,parentBucket:null,content:0,lastDrip:0,removeTokens:function(count,callback){function comeBackLater(){var waitInterval=_Mathceil((count-self.content)*(self.interval/self.tokensPerInterval));return setTimeout(function(){self.removeTokens(count,callback)},waitInterval),!1}var self=this;return this.bucketSize?count>this.bucketSize?(process.nextTick(callback.bind(null,"Requested tokens "+count+" exceeds bucket size "+this.bucketSize,null)),!1):(this.drip(),count>this.content?comeBackLater():this.parentBucket?this.parentBucket.removeTokens(count,function(err,remainingTokens){return err?callback(err,null):count>self.content?comeBackLater():void(self.content-=count,callback(null,_Mathmin(remainingTokens,self.content)))}):(this.content-=count,process.nextTick(callback.bind(null,null,this.content)),!0)):(process.nextTick(callback.bind(null,null,count,Number.POSITIVE_INFINITY)),!0)},tryRemoveTokens:function(count){return!this.bucketSize||!(count>this.bucketSize)&&(this.drip(),!(count>this.content))&&(!this.parentBucket||this.parentBucket.tryRemoveTokens(count))&&(this.content-=count,!0)},drip:function(){if(!this.tokensPerInterval)return void(this.content=this.bucketSize);var now=+new Date,deltaMS=_Mathmax(now-this.lastDrip,0);this.lastDrip=now;var dripAmount=deltaMS*(this.tokensPerInterval/this.interval);this.content=_Mathmin(this.content+dripAmount,this.bucketSize)}},module.exports=TokenBucket}).call(this)}).call(this,require("_process"))},{_process:205}],168:[function(require,module){function LRU(opts){return this instanceof LRU?void("number"==typeof opts&&(opts={max:opts}),!opts&&(opts={}),events.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=opts.max||1e3,this.maxAge=opts.maxAge||0):new LRU(opts)}var events=require("events"),inherits=require("inherits");module.exports=LRU,inherits(LRU,events.EventEmitter),Object.defineProperty(LRU.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),LRU.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},LRU.prototype.remove=function(key){if("string"!=typeof key&&(key=""+key),!!this.cache.hasOwnProperty(key)){var element=this.cache[key];return delete this.cache[key],this._unlink(key,element.prev,element.next),element.value}},LRU.prototype._unlink=function(key,prev,next){this.length--,0===this.length?this.head=this.tail=null:this.head===key?(this.head=prev,this.cache[this.head].next=null):this.tail===key?(this.tail=next,this.cache[this.tail].prev=null):(this.cache[prev].next=next,this.cache[next].prev=prev)},LRU.prototype.peek=function(key){if(this.cache.hasOwnProperty(key)){var element=this.cache[key];return this._checkAge(key,element)?element.value:void 0}},LRU.prototype.set=function(key,value){"string"!=typeof key&&(key=""+key);var element;if(this.cache.hasOwnProperty(key)){if(element=this.cache[key],element.value=value,this.maxAge&&(element.modified=Date.now()),key===this.head)return value;this._unlink(key,element.prev,element.next)}else element={value:value,modified:0,next:null,prev:null},this.maxAge&&(element.modified=Date.now()),this.cache[key]=element,this.length===this.max&&this.evict();return this.length++,element.next=null,element.prev=this.head,this.head&&(this.cache[this.head].next=key),this.head=key,this.tail||(this.tail=key),value},LRU.prototype._checkAge=function(key,element){return!(this.maxAge&&Date.now()-element.modified>this.maxAge)||(this.remove(key),this.emit("evict",{key:key,value:element.value}),!1)},LRU.prototype.get=function(key){if("string"!=typeof key&&(key=""+key),!!this.cache.hasOwnProperty(key)){var element=this.cache[key];if(this._checkAge(key,element))return this.head!==key&&(key===this.tail?(this.tail=element.next,this.cache[this.tail].prev=null):this.cache[element.prev].next=element.next,this.cache[element.next].prev=element.prev,this.cache[this.head].next=key,element.prev=this.head,element.next=null,this.head=key),element.value}},LRU.prototype.evict=function(){if(this.tail){var key=this.tail,value=this.remove(this.tail);this.emit("evict",{key:key,value:value})}}},{events:70,inherits:159}],169:[function(require,module){(function(Buffer){(function(){/*! lt_donthave. MIT License. WebTorrent LLC */const arrayRemove=require("unordered-array-remove"),{EventEmitter}=require("events"),debug=require("debug")("lt_donthave");module.exports=()=>{class ltDontHave extends EventEmitter{constructor(wire){super(),this._peerSupports=!1,this._wire=wire}onExtendedHandshake(){this._peerSupports=!0}onMessage(buf){let index;try{index=buf.readUInt32BE()}catch(err){return}this._wire.peerPieces.get(index)&&(debug("got donthave %d",index),this._wire.peerPieces.set(index,!1),this.emit("donthave",index),this._failRequests(index))}donthave(index){if(this._peerSupports){debug("donthave %d",index);const buf=Buffer.alloc(4);buf.writeUInt32BE(index),this._wire.extended("lt_donthave",buf)}}_failRequests(index){const requests=this._wire.requests;for(let i=0;i{const keyval=param.split("=");if(2!==keyval.length)return;const key=keyval[0];let val=keyval[1];"dn"===key&&(val=decodeURIComponent(val).replace(/\+/g," ")),("tr"===key||"xs"===key||"as"===key||"ws"===key)&&(val=decodeURIComponent(val)),"kt"===key&&(val=decodeURIComponent(val).split("+")),"ix"===key&&(val=+val),"so"===key&&(val=bep53Range.parse(decodeURIComponent(val).split(","))),result[key]?(!Array.isArray(result[key])&&(result[key]=[result[key]]),result[key].push(val)):result[key]=val});let m;if(result.xt){const xts=Array.isArray(result.xt)?result.xt:[result.xt];xts.forEach(xt=>{if(m=xt.match(/^urn:btih:(.{40})/))result.infoHash=m[1].toLowerCase();else if(m=xt.match(/^urn:btih:(.{32})/)){const decodedStr=base32.decode(m[1]);result.infoHash=Buffer.from(decodedStr,"binary").toString("hex")}else(m=xt.match(/^urn:btmh:1220(.{64})/))&&(result.infoHashV2=m[1].toLowerCase())})}if(result.xs){const xss=Array.isArray(result.xs)?result.xs:[result.xs];xss.forEach(xs=>{(m=xs.match(/^urn:btpk:(.{64})/))&&(result.publicKey=m[1].toLowerCase())})}return result.infoHash&&(result.infoHashBuffer=Buffer.from(result.infoHash,"hex")),result.infoHashV2&&(result.infoHashV2Buffer=Buffer.from(result.infoHashV2,"hex")),result.publicKey&&(result.publicKeyBuffer=Buffer.from(result.publicKey,"hex")),result.dn&&(result.name=result.dn),result.kt&&(result.keywords=result.kt),result.announce=[],("string"==typeof result.tr||Array.isArray(result.tr))&&(result.announce=result.announce.concat(result.tr)),result.urlList=[],("string"==typeof result.as||Array.isArray(result.as))&&(result.urlList=result.urlList.concat(result.as)),("string"==typeof result.ws||Array.isArray(result.ws))&&(result.urlList=result.urlList.concat(result.ws)),result.peerAddresses=[],("string"==typeof result["x.pe"]||Array.isArray(result["x.pe"]))&&(result.peerAddresses=result.peerAddresses.concat(result["x.pe"])),result.announce=Array.from(new Set(result.announce)),result.urlList=Array.from(new Set(result.urlList)),result.peerAddresses=Array.from(new Set(result.peerAddresses)),result}module.exports=magnetURIDecode,module.exports.decode=magnetURIDecode,module.exports.encode=function(obj){obj=Object.assign({},obj);let xts=new Set;obj.xt&&"string"==typeof obj.xt&&xts.add(obj.xt),obj.xt&&Array.isArray(obj.xt)&&(xts=new Set(obj.xt)),obj.infoHashBuffer&&xts.add(`urn:btih:${obj.infoHashBuffer.toString("hex")}`),obj.infoHash&&xts.add(`urn:btih:${obj.infoHash}`),obj.infoHashV2Buffer&&xts.add(obj.xt=`urn:btmh:1220${obj.infoHashV2Buffer.toString("hex")}`),obj.infoHashV2&&xts.add(`urn:btmh:1220${obj.infoHashV2}`);const xtsDeduped=Array.from(xts);1===xtsDeduped.length&&(obj.xt=xtsDeduped[0]),12===key.length||"x.pe"===key).forEach((key,i)=>{const values=Array.isArray(obj[key])?obj[key]:[obj[key]];values.forEach((val,j)=>{(0>>32-n}function fnF(a,b,c,d,m,k,s){return 0|rotl(0|a+(b&c|~b&d)+m+k,s)+b}function fnG(a,b,c,d,m,k,s){return 0|rotl(0|a+(b&d|c&~d)+m+k,s)+b}function fnH(a,b,c,d,m,k,s){return 0|rotl(0|a+(b^c^d)+m+k,s)+b}function fnI(a,b,c,d,m,k,s){return 0|rotl(0|a+(c^(b|~d))+m+k,s)+b}var inherits=require("inherits"),HashBase=require("hash-base"),Buffer=require("safe-buffer").Buffer,ARRAY16=Array(16);inherits(MD5,HashBase),MD5.prototype._update=function(){for(var M=ARRAY16,i=0;16>i;++i)M[i]=this._block.readInt32LE(4*i);var a=this._a,b=this._b,c=this._c,d=this._d;a=fnF(a,b,c,d,M[0],3614090360,7),d=fnF(d,a,b,c,M[1],3905402710,12),c=fnF(c,d,a,b,M[2],606105819,17),b=fnF(b,c,d,a,M[3],3250441966,22),a=fnF(a,b,c,d,M[4],4118548399,7),d=fnF(d,a,b,c,M[5],1200080426,12),c=fnF(c,d,a,b,M[6],2821735955,17),b=fnF(b,c,d,a,M[7],4249261313,22),a=fnF(a,b,c,d,M[8],1770035416,7),d=fnF(d,a,b,c,M[9],2336552879,12),c=fnF(c,d,a,b,M[10],4294925233,17),b=fnF(b,c,d,a,M[11],2304563134,22),a=fnF(a,b,c,d,M[12],1804603682,7),d=fnF(d,a,b,c,M[13],4254626195,12),c=fnF(c,d,a,b,M[14],2792965006,17),b=fnF(b,c,d,a,M[15],1236535329,22),a=fnG(a,b,c,d,M[1],4129170786,5),d=fnG(d,a,b,c,M[6],3225465664,9),c=fnG(c,d,a,b,M[11],643717713,14),b=fnG(b,c,d,a,M[0],3921069994,20),a=fnG(a,b,c,d,M[5],3593408605,5),d=fnG(d,a,b,c,M[10],38016083,9),c=fnG(c,d,a,b,M[15],3634488961,14),b=fnG(b,c,d,a,M[4],3889429448,20),a=fnG(a,b,c,d,M[9],568446438,5),d=fnG(d,a,b,c,M[14],3275163606,9),c=fnG(c,d,a,b,M[3],4107603335,14),b=fnG(b,c,d,a,M[8],1163531501,20),a=fnG(a,b,c,d,M[13],2850285829,5),d=fnG(d,a,b,c,M[2],4243563512,9),c=fnG(c,d,a,b,M[7],1735328473,14),b=fnG(b,c,d,a,M[12],2368359562,20),a=fnH(a,b,c,d,M[5],4294588738,4),d=fnH(d,a,b,c,M[8],2272392833,11),c=fnH(c,d,a,b,M[11],1839030562,16),b=fnH(b,c,d,a,M[14],4259657740,23),a=fnH(a,b,c,d,M[1],2763975236,4),d=fnH(d,a,b,c,M[4],1272893353,11),c=fnH(c,d,a,b,M[7],4139469664,16),b=fnH(b,c,d,a,M[10],3200236656,23),a=fnH(a,b,c,d,M[13],681279174,4),d=fnH(d,a,b,c,M[0],3936430074,11),c=fnH(c,d,a,b,M[3],3572445317,16),b=fnH(b,c,d,a,M[6],76029189,23),a=fnH(a,b,c,d,M[9],3654602809,4),d=fnH(d,a,b,c,M[12],3873151461,11),c=fnH(c,d,a,b,M[15],530742520,16),b=fnH(b,c,d,a,M[2],3299628645,23),a=fnI(a,b,c,d,M[0],4096336452,6),d=fnI(d,a,b,c,M[7],1126891415,10),c=fnI(c,d,a,b,M[14],2878612391,15),b=fnI(b,c,d,a,M[5],4237533241,21),a=fnI(a,b,c,d,M[12],1700485571,6),d=fnI(d,a,b,c,M[3],2399980690,10),c=fnI(c,d,a,b,M[10],4293915773,15),b=fnI(b,c,d,a,M[1],2240044497,21),a=fnI(a,b,c,d,M[8],1873313359,6),d=fnI(d,a,b,c,M[15],4264355552,10),c=fnI(c,d,a,b,M[6],2734768916,15),b=fnI(b,c,d,a,M[13],1309151649,21),a=fnI(a,b,c,d,M[4],4149444226,6),d=fnI(d,a,b,c,M[11],3174756917,10),c=fnI(c,d,a,b,M[2],718787259,15),b=fnI(b,c,d,a,M[9],3951481745,21),this._a=0|this._a+a,this._b=0|this._b+b,this._c=0|this._c+c,this._d=0|this._d+d},MD5.prototype._digest=function(){this._block[this._blockOffset++]=128,56self._bufferDuration)&&self._cb){var cb=self._cb;self._cb=null,cb()}};MediaSourceStream.prototype._getBufferDuration=function(){for(var self=this,buffered=self._sourceBuffer.buffered,currentTime=self._elem.currentTime,bufferEnd=-1,i=0;icurrentTime)break;else(0<=bufferEnd||currentTime<=end)&&(bufferEnd=end)}var bufferedTime=bufferEnd-currentTime;return 0>bufferedTime&&(bufferedTime=0),bufferedTime}},{inherits:159,"readable-stream":240,"to-arraybuffer":279}],173:[function(require,module){function Storage(chunkLength,opts){if(!(this instanceof Storage))return new Storage(chunkLength,opts);if(opts||(opts={}),this.chunkLength=+chunkLength,!this.chunkLength)throw new Error("First argument must be a chunk length");this.chunks=[],this.closed=!1,this.length=+opts.length||1/0,this.length!==1/0&&(this.lastChunkLength=this.length%this.chunkLength||this.chunkLength,this.lastChunkIndex=_Mathceil(this.length/this.chunkLength)-1)}module.exports=Storage;const queueMicrotask=require("queue-microtask");Storage.prototype.put=function(index,buf,cb=()=>{}){if(this.closed)return queueMicrotask(()=>cb(new Error("Storage is closed")));const isLastChunk=index===this.lastChunkIndex;return isLastChunk&&buf.length!==this.lastChunkLength?queueMicrotask(()=>cb(new Error("Last chunk length must be "+this.lastChunkLength))):isLastChunk||buf.length===this.chunkLength?void(this.chunks[index]=buf,queueMicrotask(()=>cb(null))):queueMicrotask(()=>cb(new Error("Chunk length must be "+this.chunkLength)))},Storage.prototype.get=function(index,opts,cb=()=>{}){if("function"==typeof opts)return this.get(index,null,opts);if(this.closed)return queueMicrotask(()=>cb(new Error("Storage is closed")));let buf=this.chunks[index];if(!buf){const err=new Error("Chunk not found");return err.notFound=!0,queueMicrotask(()=>cb(err))}opts||(opts={});const offset=opts.offset||0,len=opts.length||buf.length-offset;(0!==offset||len!==buf.length)&&(buf=buf.slice(offset,len+offset)),queueMicrotask(()=>cb(null,buf))},Storage.prototype.close=Storage.prototype.destroy=function(cb=()=>{}){return this.closed?queueMicrotask(()=>cb(new Error("Storage is closed"))):void(this.closed=!0,this.chunks=null,queueMicrotask(()=>cb(null)))}},{"queue-microtask":218}],174:[function(require,module){function MillerRabin(rand){this.rand=rand||new brorand.Rand}var bn=require("bn.js"),brorand=require("brorand");module.exports=MillerRabin,MillerRabin.create=function(rand){return new MillerRabin(rand)},MillerRabin.prototype._randbelow=function(n){var len=n.bitLength(),min_bytes=_Mathceil(len/8);do var a=new bn(this.rand.generate(min_bytes));while(0<=a.cmp(n));return a},MillerRabin.prototype._randrange=function(start,stop){var size=stop.sub(start);return start.add(this._randbelow(size))},MillerRabin.prototype.test=function(n,k,cb){var len=n.bitLength(),red=bn.mont(n),rone=new bn(1).toRed(red);k||(k=_Mathmax(1,0|len/48));for(var n1=n.subn(1),s=0;!n1.testn(s);s++);for(var d=n.shrn(s),rn1=n1.toRed(red),prime=!0;0>8,lo=255&c;hi?res.push(hi,lo):res.push(lo)}return res},utils.zero2=zero2,utils.toHex=toHex,utils.encode=function(arr,enc){return"hex"===enc?toHex(arr):arr}},{}],182:[function(require,module,exports){(function(Buffer){(function(){function writeReserved(buf,offset,end){for(var i=offset;i>3:0,mimeCodec=null;return oti&&(mimeCodec=oti.toString(16),audioConfig&&(mimeCodec+="."+audioConfig)),{mimeCodec:mimeCodec,buffer:Buffer.from(buf.slice(0))}},exports.esds.encodingLength=function(box){return box.buffer.length},exports.stsz={},exports.stsz.encode=function(box,buf,offset){var entries=box.entries||[];buf=buf?buf.slice(offset):Buffer.alloc(exports.stsz.encodingLength(box)),buf.writeUInt32BE(0,0),buf.writeUInt32BE(entries.length,4);for(var i=0;iUINT32_MAX&&(len=1),buffer.writeUInt32BE(len,offset),buffer.write(obj.type,offset+4,4,"ascii");var ptr=offset+8;if(1===len&&(uint64be.encode(obj.length,buffer,ptr),ptr+=8),boxes.fullBoxes[type]&&(buffer.writeUInt32BE(obj.flags||0,ptr),buffer.writeUInt8(obj.version||0,ptr),ptr+=4),containers[type]){var contents=containers[type];contents.forEach(function(childType){if(5===childType.length){var entry=obj[childType]||[];childType=childType.substr(0,4),entry.forEach(function(child){Box._encode(child,buffer,ptr),ptr+=Box.encode.bytes})}else obj[childType]&&(Box._encode(obj[childType],buffer,ptr),ptr+=Box.encode.bytes)}),obj.otherBoxes&&obj.otherBoxes.forEach(function(child){Box._encode(child,buffer,ptr),ptr+=Box.encode.bytes})}else if(boxes[type]){var encode=boxes[type].encode;encode(obj,buffer,ptr),ptr+=encode.bytes}else if(obj.buffer){var buf=obj.buffer;buf.copy(buffer,ptr),ptr+=obj.buffer.length}else throw new Error("Either `type` must be set to a known type (not'"+type+"') or `buffer` must be set");return Box.encode.bytes=ptr-offset,buffer},Box.readHeaders=function(buffer,start,end){if(start=start||0,end=end||buffer.length,8>end-start)return 8;var len=buffer.readUInt32BE(start),type=buffer.toString("ascii",start+4,start+8),ptr=start+8;if(1===len){if(16>end-start)return 16;len=uint64be.decode(buffer,ptr),ptr+=8}var version,flags;return boxes.fullBoxes[type]&&(version=buffer.readUInt8(ptr),flags=16777215&buffer.readUInt32BE(ptr),ptr+=4),{length:len,headersLen:ptr-start,contentLen:len-(ptr-start),type:type,version:version,flags:flags}},Box.decode=function(buffer,start,end){start=start||0,end=end||buffer.length;var headers=Box.readHeaders(buffer,start,end);if(!headers||headers.length>end-start)throw new Error("Data too short");return Box.decodeWithoutHeaders(headers,buffer,start+headers.headersLen,start+headers.length)},Box.decodeWithoutHeaders=function(headers,buffer,start,end){start=start||0,end=end||buffer.length;var type=headers.type,obj={};if(containers[type]){obj.otherBoxes=[];for(var contents=containers[type],ptr=start,child;8<=end-ptr;)if(child=Box.decode(buffer,ptr,end),ptr+=child.length,0<=contents.indexOf(child.type))obj[child.type]=child;else if(0<=contents.indexOf(child.type+"s")){var childType=child.type+"s",entry=obj[childType]=obj[childType]||[];entry.push(child)}else obj.otherBoxes.push(child)}else if(boxes[type]){var decode=boxes[type].decode;obj=decode(buffer,start,end)}else obj.buffer=Buffer.from(buffer.slice(start,end));return obj.length=headers.length,obj.contentLen=headers.contentLen,obj.type=headers.type,obj.version=headers.version,obj.flags=headers.flags,obj},Box.encodingLength=function(obj){var type=obj.type,len=8;if(boxes.fullBoxes[type]&&(len+=4),containers[type]){var contents=containers[type];contents.forEach(function(childType){if(5===childType.length){var entry=obj[childType]||[];childType=childType.substr(0,4),entry.forEach(function(child){child.type=childType,len+=Box.encodingLength(child)})}else if(obj[childType]){var child=obj[childType];child.type=childType,len+=Box.encodingLength(child)}}),obj.otherBoxes&&obj.otherBoxes.forEach(function(child){len+=Box.encodingLength(child)})}else if(boxes[type])len+=boxes[type].encodingLength(obj);else if(obj.buffer)len+=obj.buffer.length;else throw new Error("Either `type` must be set to a known type (not'"+type+"') or `buffer` must be set");return len>UINT32_MAX&&(len+=8),obj.length=len,len}}).call(this)}).call(this,require("buffer").Buffer)},{"./boxes":182,buffer:69,uint64be:283}],185:[function(require,module){(function(Buffer){(function(){var stream=require("readable-stream"),nextEvent=require("next-event"),Box=require("mp4-box-encoding"),EMPTY=Buffer.alloc(0);class Decoder extends stream.Writable{constructor(opts){super(opts),this.destroyed=!1,this._pending=0,this._missing=0,this._ignoreEmpty=!1,this._buf=null,this._str=null,this._cb=null,this._ondrain=null,this._writeBuffer=null,this._writeCb=null,this._ondrain=null,this._kick()}destroy(err){this.destroyed||(this.destroyed=!0,err&&this.emit("error",err),this.emit("close"))}_write(data,enc,next){if(!this.destroyed){for(var drained=!this._str||!this._str._writableState.needDrain;data.length&&!this.destroyed;){if(!this._missing&&!this._ignoreEmpty)return this._writeBuffer=data,void(this._writeCb=next);var consumed=data.length{this._pending--,this._kick()}),this._cb=cb,this._str}_readBox(){const bufferHeaders=(len,buf)=>{this._buffer(len,additionalBuf=>{buf=buf?Buffer.concat([buf,additionalBuf]):additionalBuf;var headers=Box.readHeaders(buf);"number"==typeof headers?bufferHeaders(headers-buf.length,buf):(this._pending++,this._headers=headers,this.emit("box",headers))})};bufferHeaders(8)}stream(){if(!this._headers)throw new Error("this function can only be called once after 'box' is emitted");var headers=this._headers;return this._headers=null,this._stream(headers.contentLen,()=>{this._pending--,this._kick()})}decode(cb){if(!this._headers)throw new Error("this function can only be called once after 'box' is emitted");var headers=this._headers;this._headers=null,this._buffer(headers.contentLen,buf=>{var box=Box.decodeWithoutHeaders(headers,buf);cb(box),this._pending--,this._kick()})}ignore(){if(!this._headers)throw new Error("this function can only be called once after 'box' is emitted");var headers=this._headers;this._headers=null,this._missing=headers.contentLen,0===this._missing&&(this._ignoreEmpty=!0),this._cb=()=>{this._pending--,this._kick()}}_kick(){if(!this._pending&&(this._buf||this._str||this._readBox(),this._writeBuffer)){var next=this._writeCb,buffer=this._writeBuffer;this._writeBuffer=null,this._writeCb=null,this._write(buffer,null,next)}}}class MediaData extends stream.PassThrough{constructor(parent){super(),this._parent=parent,this.destroyed=!1}destroy(err){this.destroyed||(this.destroyed=!0,this._parent.destroy(err),err&&this.emit("error",err),this.emit("close"))}}module.exports=Decoder}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69,"mp4-box-encoding":184,"next-event":190,"readable-stream":240}],186:[function(require,module){(function(Buffer){(function(){function noop(){}var stream=require("readable-stream"),Box=require("mp4-box-encoding"),queueMicrotask=require("queue-microtask");class Encoder extends stream.Readable{constructor(opts){super(opts),this.destroyed=!1,this._finalized=!1,this._reading=!1,this._stream=null,this._drain=null,this._want=!1,this._onreadable=()=>{this._want&&(this._want=!1,this._read())},this._onend=()=>{this._stream=null}}mdat(size,cb){this.mediaData(size,cb)}mediaData(size,cb){var stream=new MediaData(this);return this.box({type:"mdat",contentLength:size,encodeBufferLen:8,stream:stream},cb),stream}box(box,cb){if(cb||(cb=noop),this.destroyed)return cb(new Error("Encoder is destroyed"));var buf;if(box.encodeBufferLen&&(buf=Buffer.alloc(box.encodeBufferLen)),box.stream)box.buffer=null,buf=Box.encode(box,buf),this.push(buf),this._stream=box.stream,this._stream.on("readable",this._onreadable),this._stream.on("end",this._onend),this._stream.on("end",cb),this._forward();else{buf=Box.encode(box,buf);var drained=this.push(buf);if(drained)return queueMicrotask(cb);this._drain=cb}}destroy(err){if(!this.destroyed){if(this.destroyed=!0,this._stream&&this._stream.destroy&&this._stream.destroy(),this._stream=null,this._drain){var cb=this._drain;this._drain=null,cb(err)}err&&this.emit("error",err),this.emit("close")}}finalize(){this._finalized=!0,this._stream||this._drain||this.push(null)}_forward(){if(this._stream)for(;!this.destroyed;){var buf=this._stream.read();if(!buf)return void(this._want=!!this._stream);if(!this.push(buf))return}}_read(){if(!(this._reading||this.destroyed)){if(this._reading=!0,this._stream&&this._forward(),this._drain){var drain=this._drain;this._drain=null,drain()}this._reading=!1,this._finalized&&this.push(null)}}}class MediaData extends stream.PassThrough{constructor(parent){super(),this._parent=parent,this.destroyed=!1}destroy(err){this.destroyed||(this.destroyed=!0,this._parent.destroy(err),err&&this.emit("error",err),this.emit("close"))}}module.exports=Encoder}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69,"mp4-box-encoding":184,"queue-microtask":218,"readable-stream":240}],187:[function(require,module,exports){const Decoder=require("./decode"),Encoder=require("./encode");exports.decode=opts=>new Decoder(opts),exports.encode=opts=>new Encoder(opts)},{"./decode":185,"./encode":186}],188:[function(require,module){function parse(str){if(str+="",!(100=1.5*n?"s":"")}var d=24*(60*60000);module.exports=function(val,options){options=options||{};var type=typeof val;if("string"==type&&0cb(er||err));stream.on("error",callback).on("close",()=>callback()).destroy(err,callback)}}/*! multistream. MIT License. Feross Aboukhadijeh */const stream=require("readable-stream"),once=require("once");class MultiStream extends stream.Readable{constructor(streams,opts){super({...opts,autoDestroy:!0}),this._drained=!1,this._forwarding=!1,this._current=null,this._toStreams2=opts&&opts.objectMode?toStreams2Obj:toStreams2Buf,"function"==typeof streams?this._queue=streams:(this._queue=streams.map(this._toStreams2),this._queue.forEach(stream=>{"function"!=typeof stream&&this._attachErrorListener(stream)})),this._next()}_read(){this._drained=!0,this._forward()}_forward(){if(!this._forwarding&&this._drained&&this._current){this._forwarding=!0;for(let chunk;this._drained&&null!==(chunk=this._current.read());)this._drained=this.push(chunk);this._forwarding=!1}}_destroy(err,cb){let streams=[];if(this._current&&streams.push(this._current),"function"!=typeof this._queue&&(streams=streams.concat(this._queue)),0===streams.length)cb(err);else{let counter=streams.length,er=err;streams.forEach(stream=>{destroy(stream,err,err=>{er=er||err,0==--counter&&cb(er)})})}}_next(){if(this._current=null,"function"==typeof this._queue)this._queue((err,stream)=>err?this.destroy(err):void(stream=this._toStreams2(stream),this._attachErrorListener(stream),this._gotNextStream(stream)));else{let stream=this._queue.shift();"function"==typeof stream&&(stream=this._toStreams2(stream()),this._attachErrorListener(stream)),this._gotNextStream(stream)}}_gotNextStream(stream){if(!stream)return void this.push(null);this._current=stream,this._forward();const onReadable=()=>{this._forward()},onClose=()=>{if(!stream._readableState.ended&&!stream.destroyed){const err=new Error("ERR_STREAM_PREMATURE_CLOSE");err.code="ERR_STREAM_PREMATURE_CLOSE",this.destroy(err)}},onEnd=()=>{this._current=null,stream.removeListener("readable",onReadable),stream.removeListener("end",onEnd),stream.removeListener("close",onClose),stream.destroy(),this._next()};stream.on("readable",onReadable),stream.once("end",onEnd),stream.once("close",onClose)}_attachErrorListener(stream){if(!stream)return;const onError=err=>{stream.removeListener("error",onError),this.destroy(err)};stream.once("error",onError)}}MultiStream.obj=streams=>new MultiStream(streams,{objectMode:!0,highWaterMark:16}),module.exports=MultiStream},{once:191,"readable-stream":240}],190:[function(require,module){module.exports=function(emitter,name){var next=null;return emitter.on(name,function(data){if(next){var fn=next;next=null,fn(data)}}),function(once){next=once}}},{}],191:[function(require,module){function once(fn){var f=function(){return f.called?f.value:(f.called=!0,f.value=fn.apply(this,arguments))};return f.called=!1,f}function onceStrict(fn){var f=function(){if(f.called)throw new Error(f.onceError);return f.called=!0,f.value=fn.apply(this,arguments)},name=fn.name||"Function wrapped with `once`";return f.onceError=name+" shouldn't be called more than once",f.called=!1,f}var wrappy=require("wrappy");module.exports=wrappy(once),module.exports.strict=wrappy(onceStrict),once.proto=once(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:!0})})},{wrappy:291}],192:[function(require,module){module.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},{}],193:[function(require,module,exports){"use strict";var asn1=require("asn1.js");exports.certificate=require("./certificate");var RSAPrivateKey=asn1.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});exports.RSAPrivateKey=RSAPrivateKey;var RSAPublicKey=asn1.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});exports.RSAPublicKey=RSAPublicKey;var PublicKey=asn1.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPublicKey").bitstr())});exports.PublicKey=PublicKey;var AlgorithmIdentifier=asn1.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),PrivateKeyInfo=asn1.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPrivateKey").octstr())});exports.PrivateKey=PrivateKeyInfo;var EncryptedPrivateKeyInfo=asn1.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});exports.EncryptedPrivateKey=EncryptedPrivateKeyInfo;var DSAPrivateKey=asn1.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});exports.DSAPrivateKey=DSAPrivateKey,exports.DSAparam=asn1.define("DSAparam",function(){this.int()});var ECPrivateKey=asn1.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(ECParameters),this.key("publicKey").optional().explicit(1).bitstr())});exports.ECPrivateKey=ECPrivateKey;var ECParameters=asn1.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});exports.signature=asn1.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},{"./certificate":194,"asn1.js":8}],194:[function(require,module){"use strict";var asn=require("asn1.js"),Time=asn.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),AttributeTypeValue=asn.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),AlgorithmIdentifier=asn.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())}),SubjectPublicKeyInfo=asn.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPublicKey").bitstr())}),RelativeDistinguishedName=asn.define("RelativeDistinguishedName",function(){this.setof(AttributeTypeValue)}),RDNSequence=asn.define("RDNSequence",function(){this.seqof(RelativeDistinguishedName)}),Name=asn.define("Name",function(){this.choice({rdnSequence:this.use(RDNSequence)})}),Validity=asn.define("Validity",function(){this.seq().obj(this.key("notBefore").use(Time),this.key("notAfter").use(Time))}),Extension=asn.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),TBSCertificate=asn.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(AlgorithmIdentifier),this.key("issuer").use(Name),this.key("validity").use(Validity),this.key("subject").use(Name),this.key("subjectPublicKeyInfo").use(SubjectPublicKeyInfo),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(Extension).optional())}),X509Certificate=asn.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(TBSCertificate),this.key("signatureAlgorithm").use(AlgorithmIdentifier),this.key("signatureValue").bitstr())});module.exports=X509Certificate},{"asn1.js":8}],195:[function(require,module){var evp=require("evp_bytestokey"),ciphers=require("browserify-aes"),Buffer=require("safe-buffer").Buffer;module.exports=function(okey,password){var key=okey.toString(),match=key.match(/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m),decrypted;if(!match){var match2=key.match(/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m);decrypted=Buffer.from(match2[2].replace(/[\r\n]/g,""),"base64")}else{var suite="aes"+match[1],iv=Buffer.from(match[2],"hex"),cipherText=Buffer.from(match[3].replace(/[\r\n]/g,""),"base64"),cipherKey=evp(password,iv.slice(0,8),parseInt(match[1],10)).key,out=[],cipher=ciphers.createDecipheriv(suite,cipherKey,iv);out.push(cipher.update(cipherText)),out.push(cipher.final()),decrypted=Buffer.concat(out)}var tag=key.match(/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m)[1];return{tag:tag,data:decrypted}}},{"browserify-aes":44,evp_bytestokey:137,"safe-buffer":247}],196:[function(require,module){function parseKeys(buffer){var password;"object"!=typeof buffer||Buffer.isBuffer(buffer)||(password=buffer.passphrase,buffer=buffer.key),"string"==typeof buffer&&(buffer=Buffer.from(buffer));var stripped=fixProc(buffer,password),type=stripped.tag,data=stripped.data,subtype,ndata;switch(type){case"CERTIFICATE":ndata=asn1.certificate.decode(data,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(ndata||(ndata=asn1.PublicKey.decode(data,"der")),subtype=ndata.algorithm.algorithm.join("."),subtype){case"1.2.840.113549.1.1.1":return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return ndata.subjectPrivateKey=ndata.subjectPublicKey,{type:"ec",data:ndata};case"1.2.840.10040.4.1":return ndata.algorithm.params.pub_key=asn1.DSAparam.decode(ndata.subjectPublicKey.data,"der"),{type:"dsa",data:ndata.algorithm.params};default:throw new Error("unknown key id "+subtype);}case"ENCRYPTED PRIVATE KEY":data=asn1.EncryptedPrivateKey.decode(data,"der"),data=decrypt(data,password);case"PRIVATE KEY":switch(ndata=asn1.PrivateKey.decode(data,"der"),subtype=ndata.algorithm.algorithm.join("."),subtype){case"1.2.840.113549.1.1.1":return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:ndata.algorithm.curve,privateKey:asn1.ECPrivateKey.decode(ndata.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return ndata.algorithm.params.priv_key=asn1.DSAparam.decode(ndata.subjectPrivateKey,"der"),{type:"dsa",params:ndata.algorithm.params};default:throw new Error("unknown key id "+subtype);}case"RSA PUBLIC KEY":return asn1.RSAPublicKey.decode(data,"der");case"RSA PRIVATE KEY":return asn1.RSAPrivateKey.decode(data,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:asn1.DSAPrivateKey.decode(data,"der")};case"EC PRIVATE KEY":return data=asn1.ECPrivateKey.decode(data,"der"),{curve:data.parameters.value,privateKey:data.privateKey};default:throw new Error("unknown key type "+type);}}function decrypt(data,password){var salt=data.algorithm.decrypt.kde.kdeparams.salt,iters=parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(),10),algo=aesid[data.algorithm.decrypt.cipher.algo.join(".")],iv=data.algorithm.decrypt.cipher.iv,cipherText=data.subjectPrivateKey,keylen=parseInt(algo.split("-")[1],10)/8,key=compat.pbkdf2Sync(password,salt,iters,keylen,"sha1"),cipher=ciphers.createDecipheriv(algo,key,iv),out=[];return out.push(cipher.update(cipherText)),out.push(cipher.final()),Buffer.concat(out)}var asn1=require("./asn1"),aesid=require("./aesid.json"),fixProc=require("./fixProc"),ciphers=require("browserify-aes"),compat=require("pbkdf2"),Buffer=require("safe-buffer").Buffer;module.exports=parseKeys,parseKeys.signature=asn1.signature},{"./aesid.json":192,"./asn1":193,"./fixProc":195,"browserify-aes":44,pbkdf2:198,"safe-buffer":247}],197:[function(require,module){(function(Buffer){(function(){function parseTorrent(torrentId){if("string"==typeof torrentId&&/^(stream-)?magnet:/.test(torrentId)){const torrentObj=magnet(torrentId);if(!torrentObj.infoHash)throw new Error("Invalid torrent identifier");return torrentObj}if("string"==typeof torrentId&&(/^[a-f0-9]{40}$/i.test(torrentId)||/^[a-z2-7]{32}$/i.test(torrentId)))return magnet(`magnet:?xt=urn:btih:${torrentId}`);if(Buffer.isBuffer(torrentId)&&20===torrentId.length)return magnet(`magnet:?xt=urn:btih:${torrentId.toString("hex")}`);if(Buffer.isBuffer(torrentId))return decodeTorrentFile(torrentId);if(torrentId&&torrentId.infoHash)return torrentId.infoHash=torrentId.infoHash.toLowerCase(),torrentId.announce||(torrentId.announce=[]),"string"==typeof torrentId.announce&&(torrentId.announce=[torrentId.announce]),torrentId.urlList||(torrentId.urlList=[]),torrentId;throw new Error("Invalid torrent identifier")}function parseTorrentRemote(torrentId,opts,cb){function parseOrThrow(torrentBuf){try{parsedTorrent=parseTorrent(torrentBuf)}catch(err){return cb(err)}parsedTorrent&&parsedTorrent.infoHash?cb(null,parsedTorrent):cb(new Error("Invalid torrent identifier"))}if("function"==typeof opts)return parseTorrentRemote(torrentId,{},opts);if("function"!=typeof cb)throw new Error("second argument must be a Function");let parsedTorrent;try{parsedTorrent=parseTorrent(torrentId)}catch(err){}parsedTorrent&&parsedTorrent.infoHash?queueMicrotask(()=>{cb(null,parsedTorrent)}):isBlob(torrentId)?blobToBuffer(torrentId,(err,torrentBuf)=>err?cb(new Error(`Error converting Blob: ${err.message}`)):void parseOrThrow(torrentBuf)):"function"==typeof get&&/^https?:/.test(torrentId)?(opts=Object.assign({url:torrentId,timeout:30000,headers:{"user-agent":"WebTorrent (https://webtorrent.io)"}},opts),get.concat(opts,(err,res,torrentBuf)=>err?cb(new Error(`Error downloading torrent: ${err.message}`)):void parseOrThrow(torrentBuf))):"function"==typeof fs.readFile&&"string"==typeof torrentId?fs.readFile(torrentId,(err,torrentBuf)=>err?cb(new Error("Invalid torrent identifier")):void parseOrThrow(torrentBuf)):queueMicrotask(()=>{cb(new Error("Invalid torrent identifier"))})}function decodeTorrentFile(torrent){Buffer.isBuffer(torrent)&&(torrent=bencode.decode(torrent)),ensure(torrent.info,"info"),ensure(torrent.info["name.utf-8"]||torrent.info.name,"info.name"),ensure(torrent.info["piece length"],"info['piece length']"),ensure(torrent.info.pieces,"info.pieces"),torrent.info.files?torrent.info.files.forEach(file=>{ensure("number"==typeof file.length,"info.files[0].length"),ensure(file["path.utf-8"]||file.path,"info.files[0].path")}):ensure("number"==typeof torrent.info.length,"info.length");const result={info:torrent.info,infoBuffer:bencode.encode(torrent.info),name:(torrent.info["name.utf-8"]||torrent.info.name).toString(),announce:[]};result.infoHash=sha1.sync(result.infoBuffer),result.infoHashBuffer=Buffer.from(result.infoHash,"hex"),void 0!==torrent.info.private&&(result.private=!!torrent.info.private),torrent["creation date"]&&(result.created=new Date(1e3*torrent["creation date"])),torrent["created by"]&&(result.createdBy=torrent["created by"].toString()),Buffer.isBuffer(torrent.comment)&&(result.comment=torrent.comment.toString()),Array.isArray(torrent["announce-list"])&&0{urls.forEach(url=>{result.announce.push(url.toString())})}):torrent.announce&&result.announce.push(torrent.announce.toString()),Buffer.isBuffer(torrent["url-list"])&&(torrent["url-list"]=0url.toString()),result.announce=Array.from(new Set(result.announce)),result.urlList=Array.from(new Set(result.urlList));const files=torrent.info.files||[torrent.info];result.files=files.map((file,i)=>{const parts=[].concat(result.name,file["path.utf-8"]||file.path||[]).map(p=>p.toString());return{path:path.join.apply(null,[path.sep].concat(parts)).slice(1),name:parts[parts.length-1],length:file.length,offset:files.slice(0,i).reduce(sumLength,0)}}),result.length=files.reduce(sumLength,0);const lastFile=result.files[result.files.length-1];return result.pieceLength=torrent.info["piece length"],result.lastPieceLength=(lastFile.offset+lastFile.length)%result.pieceLength||result.pieceLength,result.pieces=splitPieces(torrent.info.pieces),result}function isBlob(obj){return"undefined"!=typeof Blob&&obj instanceof Blob}function sumLength(sum,file){return sum+file.length}function splitPieces(buf){const pieces=[];for(let i=0;i */const bencode=require("bencode"),blobToBuffer=require("blob-to-buffer"),fs=require("fs"),get=require("simple-get"),magnet=require("magnet-uri"),path=require("path"),sha1=require("simple-sha1"),queueMicrotask=require("queue-microtask");module.exports=parseTorrent,module.exports.remote=parseTorrentRemote,module.exports.toMagnetURI=magnet.encode,module.exports.toTorrentFile=function(parsed){const torrent={info:parsed.info};return torrent["announce-list"]=(parsed.announce||[]).map(url=>(torrent.announce||(torrent.announce=url),url=Buffer.from(url,"utf8"),[url])),torrent["url-list"]=parsed.urlList||[],void 0!==parsed.private&&(torrent.private=+parsed.private),parsed.created&&(torrent["creation date"]=0|parsed.created.getTime()/1e3),parsed.createdBy&&(torrent["created by"]=parsed.createdBy),parsed.comment&&(torrent.comment=parsed.comment),bencode.encode(torrent)};(()=>{Buffer.alloc(0)})()}).call(this)}).call(this,require("buffer").Buffer)},{bencode:27,"blob-to-buffer":37,buffer:69,fs:41,"magnet-uri":170,path:71,"queue-microtask":218,"simple-get":258,"simple-sha1":260}],198:[function(require,module,exports){exports.pbkdf2=require("./lib/async"),exports.pbkdf2Sync=require("./lib/sync")},{"./lib/async":199,"./lib/sync":202}],199:[function(require,module){(function(global){(function(){function checkNative(algo){if(global.process&&!global.process.browser)return Promise.resolve(!1);if(!subtle||!subtle.importKey||!subtle.deriveBits)return Promise.resolve(!1);if(void 0!==checks[algo])return checks[algo];ZERO_BUF=ZERO_BUF||Buffer.alloc(8);var prom=browserPbkdf2(ZERO_BUF,ZERO_BUF,10,128,algo).then(function(){return!0}).catch(function(){return!1});return checks[algo]=prom,prom}function getNextTick(){return nextTick?nextTick:(nextTick=global.process&&global.process.nextTick?global.process.nextTick:global.queueMicrotask?global.queueMicrotask:global.setImmediate?global.setImmediate:global.setTimeout,nextTick)}function browserPbkdf2(password,salt,iterations,length,algo){return subtle.importKey("raw",password,{name:"PBKDF2"},!1,["deriveBits"]).then(function(key){return subtle.deriveBits({name:"PBKDF2",salt:salt,iterations:iterations,hash:{name:algo}},key,length<<3)}).then(function(res){return Buffer.from(res)})}function resolvePromise(promise,callback){promise.then(function(out){getNextTick()(function(){callback(null,out)})},function(e){getNextTick()(function(){callback(e)})})}var Buffer=require("safe-buffer").Buffer,checkParameters=require("./precondition"),defaultEncoding=require("./default-encoding"),sync=require("./sync"),toBuffer=require("./to-buffer"),subtle=global.crypto&&global.crypto.subtle,toBrowser={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},checks=[],ZERO_BUF,nextTick;module.exports=function(password,salt,iterations,keylen,digest,callback){"function"==typeof digest&&(callback=digest,digest=void 0),digest=digest||"sha1";var algo=toBrowser[digest.toLowerCase()];if(!algo||"function"!=typeof global.Promise)return void getNextTick()(function(){var out;try{out=sync(password,salt,iterations,keylen,digest)}catch(e){return callback(e)}callback(null,out)});if(checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,"Password"),salt=toBuffer(salt,defaultEncoding,"Salt"),"function"!=typeof callback)throw new Error("No callback provided to pbkdf2");resolvePromise(checkNative(algo).then(function(resp){return resp?browserPbkdf2(password,salt,iterations,keylen,algo):sync(password,salt,iterations,keylen,digest)}),callback)}}).call(this)}).call(this,"undefined"==typeof global?"undefined"==typeof self?"undefined"==typeof window?{}:window:self:global)},{"./default-encoding":200,"./precondition":201,"./sync":202,"./to-buffer":203,"safe-buffer":247}],200:[function(require,module){(function(process,global){(function(){var defaultEncoding;if(global.process&&global.process.browser)defaultEncoding="utf-8";else if(global.process&&global.process.version){var pVersionMajor=parseInt(process.version.split(".")[0].slice(1),10);defaultEncoding=6<=pVersionMajor?"utf-8":"binary"}else defaultEncoding="utf-8";module.exports=defaultEncoding}).call(this)}).call(this,require("_process"),"undefined"==typeof global?"undefined"==typeof self?"undefined"==typeof window?{}:window:self:global)},{_process:205}],201:[function(require,module){_Mathpow(2,30)-1;module.exports=function(iterations,keylen){if("number"!=typeof iterations)throw new TypeError("Iterations not a number");if(0>iterations)throw new TypeError("Bad iterations");if("number"!=typeof keylen)throw new TypeError("Key length not a number");if(0>keylen||1073741823blocksize?key=hash(key):key.lengthbytes?1:bytes/1024)+.5)}},{}],205:[function(require,module){function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}function runClearTimeout(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{return cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex=msg.length){status++;break}var ps=msg.slice(2,i-1);if(("0002"!==p1.toString("hex")&&!reverse||"0001"!==p1.toString("hex")&&reverse)&&status++,8>ps.length&&status++,status)throw new Error("decryption error");return msg.slice(i)}function compare(a,b){a=Buffer.from(a),b=Buffer.from(b);var dif=0,len=a.length;a.length!==b.length&&(dif++,len=_Mathmin(a.length,b.length));for(var i=-1;++ik||0<=new BN(enc).cmp(key.modulus))throw new Error("decryption error");var msg=reverse?withPublic(new BN(enc),key):crt(enc,key);var zBuffer=Buffer.alloc(k-msg.length);if(msg=Buffer.concat([zBuffer,msg],k),4===padding)return oaep(key,msg);if(1===padding)return pkcs1(key,msg,reverse);if(3===padding)return msg;throw new Error("unknown padding")}},{"./mgf":207,"./withPublic":211,"./xor":212,"bn.js":208,"browserify-rsa":62,"create-hash":99,"parse-asn1":196,"safe-buffer":247}],210:[function(require,module){function oaep(key,msg){var k=key.modulus.byteLength(),mLen=msg.length,iHash=createHash("sha1").update(Buffer.alloc(0)).digest(),hLen=iHash.length,hLen2=2*hLen;if(mLen>k-hLen2-2)throw new Error("message too long");var ps=Buffer.alloc(k-mLen-hLen2-2),dblen=k-hLen-1,seed=randomBytes(hLen),maskedDb=xor(Buffer.concat([iHash,ps,Buffer.alloc(1,1),msg],dblen),mgf(seed,dblen)),maskedSeed=xor(seed,mgf(maskedDb,hLen));return new BN(Buffer.concat([Buffer.alloc(1),maskedSeed,maskedDb],k))}function pkcs1(key,msg,reverse){var mLen=msg.length,k=key.modulus.byteLength();if(mLen>k-11)throw new Error("message too long");var ps;return ps=reverse?Buffer.alloc(k-mLen-3,255):nonZero(k-mLen-3),new BN(Buffer.concat([Buffer.from([0,reverse?1:2]),ps,Buffer.alloc(1),msg],k))}function nonZero(len){for(var out=Buffer.allocUnsafe(len),i=0,cache=randomBytes(2*len),cur=0,num;istreams.length)throw new Error("pump requires two streams per minimum");var destroys=streams.map(function(stream,i){var reading=i=value&&counter>>10),value=56320|1023&value),output+=stringFromCharCode(value),output}).join("")}function basicToDigit(codePoint){return 10>codePoint-48?codePoint-22:26>codePoint-65?codePoint-65:26>codePoint-97?codePoint-97:36}function digitToBasic(digit,flag){return digit+22+75*(26>digit)-((0!=flag)<<5)}function adapt(delta,numPoints,firstTime){var k=0;for(delta=firstTime?floor(delta/700):delta>>1,delta+=floor(delta/numPoints);455basic&&(basic=0),j=0;j=inputLength&&error("invalid-input"),digit=basicToDigit(input.charCodeAt(index++)),(36<=digit||digit>floor((2147483647-i)/w))&&error("overflow"),i+=digit*w,t=k<=bias?1:k>=bias+26?26:k-bias,digitfloor(2147483647/baseMinusT)&&error("overflow"),w*=baseMinusT}out=output.length+1,bias=adapt(i-oldi,out,0==oldi),floor(i/out)>2147483647-n&&error("overflow"),n+=floor(i/out),i%=out,output.splice(i++,0,n)}return ucs2encode(output)}function encode(input){var output=[],n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,inputLength,handledCPCountPlusOne,baseMinusT,qMinusT;for(input=ucs2decode(input),inputLength=input.length,n=128,delta=0,bias=72,j=0;jcurrentValue&&output.push(stringFromCharCode(currentValue));for(handledCPCount=basicLength=output.length,basicLength&&output.push("-");handledCPCount=n&¤tValuefloor((2147483647-delta)/handledCPCountPlusOne)&&error("overflow"),delta+=(m-n)*handledCPCountPlusOne,n=m,j=0;j=bias+26?26:k-bias,q= 0x80 (not a basic code point)","invalid-input":"Invalid input"},floor=_Mathfloor,stringFromCharCode=_StringfromCharCode,punycode,key;if(punycode={version:"1.4.1",ucs2:{decode:ucs2decode,encode:ucs2encode},decode:decode,encode:encode,toASCII:function(input){return mapDomain(input,function(string){return /[^\x20-\x7E]/.test(string)?"xn--"+encode(string):string})},toUnicode:function(input){return mapDomain(input,function(string){return /^xn--/.test(string)?decode(string.slice(4).toLowerCase()):string})}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return punycode});else if(!(freeExports&&freeModule))root.punycode=punycode;else if(module.exports==freeExports)freeModule.exports=punycode;else for(key in punycode)punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key])})(this)}).call(this)}).call(this,"undefined"==typeof global?"undefined"==typeof self?"undefined"==typeof window?{}:window:self:global)},{}],215:[function(require,module){"use strict";function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}module.exports=function(qs,sep,eq,options){sep=sep||"&",eq=eq||"=";var obj={};if("string"!=typeof qs||0===qs.length)return obj;qs=qs.split(sep);var maxKeys=1e3;options&&"number"==typeof options.maxKeys&&(maxKeys=options.maxKeys);var len=qs.length;0maxKeys&&(len=maxKeys);for(var i=0;i */let promise;module.exports="function"==typeof queueMicrotask?queueMicrotask.bind("undefined"==typeof window?global:window):cb=>(promise||(promise=Promise.resolve())).then(cb).catch(err=>setTimeout(()=>{throw err},0))}).call(this)}).call(this,"undefined"==typeof global?"undefined"==typeof self?"undefined"==typeof window?{}:window:self:global)},{}],219:[function(require,module){module.exports="function"==typeof queueMicrotask?queueMicrotask:fn=>Promise.resolve().then(fn)},{}],220:[function(require,module){module.exports=function(list){var offset=0;return function(){if(offset===list.length)return null;var len=list.length-offset,i=0|Math.random()*len,el=list[offset+i],tmp=list[offset];return list[offset]=el,list[offset+i]=tmp,offset++,el}}},{}],221:[function(require,module){(function(process,global){(function(){"use strict";var Buffer=require("safe-buffer").Buffer,crypto=global.crypto||global.msCrypto;module.exports=crypto&&crypto.getRandomValues?function(size,cb){if(size>4294967295)throw new RangeError("requested too many random bytes");var bytes=Buffer.allocUnsafe(size);if(0offset)throw new TypeError("offset must be a uint32");if(offset>kBufferMaxLength||offset>length)throw new RangeError("offset out of range")}function assertSize(size,offset,length){if("number"!=typeof size||size!==size)throw new TypeError("size must be a number");if(4294967295size)throw new TypeError("size must be a uint32");if(size+offset>length||size>kBufferMaxLength)throw new RangeError("buffer too small")}function actualFill(buf,offset,size,cb){if(process.browser){var ourBuf=buf.buffer,uint=new Uint8Array(ourBuf,offset,size);return crypto.getRandomValues(uint),cb?void process.nextTick(function(){cb(null,buf)}):buf}if(cb)return void randombytes(size,function(err,bytes){return err?cb(err):void(bytes.copy(buf,offset),cb(null,buf))});var bytes=randombytes(size);return bytes.copy(buf,offset),buf}var safeBuffer=require("safe-buffer"),randombytes=require("randombytes"),Buffer=safeBuffer.Buffer,kBufferMaxLength=safeBuffer.kMaxLength,crypto=global.crypto||global.msCrypto,kMaxUint32=_Mathpow(2,32)-1;crypto&&crypto.getRandomValues||!process.browser?(exports.randomFill=function(buf,offset,size,cb){if(!Buffer.isBuffer(buf)&&!(buf instanceof global.Uint8Array))throw new TypeError("\"buf\" argument must be a Buffer or Uint8Array");if("function"==typeof offset)cb=offset,offset=0,size=buf.length;else if("function"==typeof size)cb=size,size=buf.length-offset;else if("function"!=typeof cb)throw new TypeError("\"cb\" argument must be a function");return assertOffset(offset,buf.length),assertSize(size,offset,buf.length),actualFill(buf,offset,size,cb)},exports.randomFillSync=function(buf,offset,size){if("undefined"==typeof offset&&(offset=0),!Buffer.isBuffer(buf)&&!(buf instanceof global.Uint8Array))throw new TypeError("\"buf\" argument must be a Buffer or Uint8Array");return assertOffset(offset,buf.length),void 0===size&&(size=buf.length-offset),assertSize(size,offset,buf.length),actualFill(buf,offset,size)}):(exports.randomFill=oldBrowser,exports.randomFillSync=oldBrowser)}).call(this)}).call(this,require("_process"),"undefined"==typeof global?"undefined"==typeof self?"undefined"==typeof window?{}:window:self:global)},{_process:205,randombytes:221,"safe-buffer":247}],223:[function(require,module){/*! + * range-parser + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */"use strict";function combineRanges(ranges){for(var ordered=ranges.map(mapWithIndex).sort(sortByRangeStart),j=0,i=1;icurrent.end+1?ordered[++j]=range:range.end>current.end&&(current.end=range.end,current.index=_Mathmin(current.index,range.index))}ordered.length=j+1;var combined=ordered.sort(sortByRangeIndex).map(mapWithoutIndex);return combined.type=ranges.type,combined}function mapWithIndex(range,index){return{start:range.start,end:range.end,index:index}}function mapWithoutIndex(range){return{start:range.start,end:range.end}}function sortByRangeIndex(a,b){return a.index-b.index}function sortByRangeStart(a,b){return a.start-b.start}module.exports=function(size,str,options){if("string"!=typeof str)throw new TypeError("argument str must be a string");var index=str.indexOf("=");if(-1===index)return-2;var arr=str.slice(index+1).split(","),ranges=[];ranges.type=str.slice(0,index);for(var i=0;isize-1&&(end=size-1),!(isNaN(start)||isNaN(end)||start>end||0>start))&&ranges.push({start:start,end:end})}return 1>ranges.length?-1:options&&options.combine?combineRanges(ranges):ranges}},{}],224:[function(require,module){const{Writable,PassThrough}=require("readable-stream");module.exports=class extends Writable{constructor(offset,opts={}){super(opts),this.destroyed=!1,this._queue=[],this._position=offset||0,this._cb=null,this._buffer=null,this._out=null}_write(chunk,encoding,cb){let drained=!0;for(;;){if(this.destroyed)return;if(0===this._queue.length)return this._buffer=chunk,void(this._cb=cb);this._buffer=null;var currRange=this._queue[0];const writeStart=_Mathmax(currRange.start-this._position,0),writeEnd=currRange.end-this._position;if(writeStart>=chunk.length)return this._position+=chunk.length,cb(null);let toWrite;if(writeEnd>chunk.length){this._position+=chunk.length,toWrite=0===writeStart?chunk:chunk.slice(writeStart),drained=currRange.stream.write(toWrite)&&drained;break}this._position+=writeEnd,toWrite=0===writeStart&&writeEnd===chunk.length?chunk:chunk.slice(writeStart,writeEnd),drained=currRange.stream.write(toWrite)&&drained,currRange.last&&currRange.stream.end(),chunk=chunk.slice(writeEnd),this._queue.shift()}drained?cb(null):currRange.stream.once("drain",cb.bind(null,null))}slice(ranges){if(this.destroyed)return null;Array.isArray(ranges)||(ranges=[ranges]);const str=new PassThrough;return ranges.forEach((range,i)=>{this._queue.push({start:range.start,end:range.end,stream:str,last:i===ranges.length-1})}),this._buffer&&this._write(this._buffer,null,this._cb),str}destroy(err){this.destroyed||(this.destroyed=!0,err&&this.emit("error",err))}}},{"readable-stream":240}],225:[function(require,module){"use strict";function isInteger(n){return parseInt(n,10)===n}function createRC4(N){function identityPermutation(){for(var s=Array(N),i=0;in?_StringfromCharCode(48+n):_StringfromCharCode(97+n-10)}function fromHex(c){return parseInt(c,16)}var RC4=createRC4(256);RC4.prototype.randomByte=RC4.prototype.randomNative;var RC4small=createRC4(16);RC4small.prototype.randomByte=function(){var a=this.randomNative(),b=this.randomNative();return 16*a+b};RC4small.prototype.currentStateString=function(){var state=this.currentState(),i=toHex(state.i),j=toHex(state.j),res=i+j+state.s.map(toHex).join("");return res},RC4small.prototype.setStateString=function(stateString){if(!stateString.match(/^[0-9a-f]{18}$/))throw new TypeError("RC4small stateString should be 18 hex character string");var i=fromHex(stateString[0]),j=fromHex(stateString[1]),s=stateString.split("").slice(2).map(fromHex);this.setState({i:i,j:j,s:s})},RC4.RC4small=RC4small,module.exports=RC4},{}],226:[function(require,module,exports){arguments[4][73][0].apply(exports,arguments)},{dup:73}],227:[function(require,module,exports){arguments[4][74][0].apply(exports,arguments)},{"./_stream_readable":229,"./_stream_writable":231,_process:205,dup:74,inherits:159}],228:[function(require,module,exports){arguments[4][75][0].apply(exports,arguments)},{"./_stream_transform":230,dup:75,inherits:159}],229:[function(require,module,exports){arguments[4][76][0].apply(exports,arguments)},{"../errors":226,"./_stream_duplex":227,"./internal/streams/async_iterator":232,"./internal/streams/buffer_list":233,"./internal/streams/destroy":234,"./internal/streams/from":236,"./internal/streams/state":238,"./internal/streams/stream":239,_process:205,buffer:69,dup:76,events:70,inherits:159,"string_decoder/":276,util:41}],230:[function(require,module,exports){arguments[4][77][0].apply(exports,arguments)},{"../errors":226,"./_stream_duplex":227,dup:77,inherits:159}],231:[function(require,module,exports){arguments[4][78][0].apply(exports,arguments)},{"../errors":226,"./_stream_duplex":227,"./internal/streams/destroy":234,"./internal/streams/state":238,"./internal/streams/stream":239,_process:205,buffer:69,dup:78,inherits:159,"util-deprecate":288}],232:[function(require,module,exports){arguments[4][79][0].apply(exports,arguments)},{"./end-of-stream":235,_process:205,dup:79}],233:[function(require,module,exports){arguments[4][80][0].apply(exports,arguments)},{buffer:69,dup:80,util:41}],234:[function(require,module,exports){arguments[4][81][0].apply(exports,arguments)},{_process:205,dup:81}],235:[function(require,module,exports){arguments[4][82][0].apply(exports,arguments)},{"../../../errors":226,dup:82}],236:[function(require,module,exports){arguments[4][83][0].apply(exports,arguments)},{dup:83}],237:[function(require,module,exports){arguments[4][84][0].apply(exports,arguments)},{"../../../errors":226,"./end-of-stream":235,dup:84}],238:[function(require,module,exports){arguments[4][85][0].apply(exports,arguments)},{"../../../errors":226,dup:85}],239:[function(require,module,exports){arguments[4][86][0].apply(exports,arguments)},{dup:86,events:70}],240:[function(require,module,exports){exports=module.exports=require("./lib/_stream_readable.js"),exports.Stream=exports,exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js"),exports.finished=require("./lib/internal/streams/end-of-stream.js"),exports.pipeline=require("./lib/internal/streams/pipeline.js")},{"./lib/_stream_duplex.js":227,"./lib/_stream_passthrough.js":228,"./lib/_stream_readable.js":229,"./lib/_stream_transform.js":230,"./lib/_stream_writable.js":231,"./lib/internal/streams/end-of-stream.js":235,"./lib/internal/streams/pipeline.js":237}],241:[function(require,module,exports){function renderMedia(file,getElem,opts,cb){function checkBlobLength(){return!("number"==typeof file.length&&file.length>opts.maxBlobLength)||(debug("File length too large for Blob URL approach: %d (max: %d)",file.length,opts.maxBlobLength),fatalError(new Error(`File length too large for Blob URL approach: ${file.length} (max: ${opts.maxBlobLength})`)),!1)}function renderMediaElement(type){checkBlobLength()&&(elem=getElem(type),getBlobURL(file,(err,url)=>err?fatalError(err):void(elem.addEventListener("error",fatalError),elem.addEventListener("loadstart",onLoadStart),elem.addEventListener("loadedmetadata",onLoadedMetadata),elem.src=url)))}function onLoadStart(){if(elem.removeEventListener("loadstart",onLoadStart),opts.autoplay){const playPromise=elem.play();"undefined"!=typeof playPromise&&playPromise.catch(fatalError)}}function onLoadedMetadata(){elem.removeEventListener("loadedmetadata",onLoadedMetadata),cb(null,elem)}function renderIframe(){getBlobURL(file,(err,url)=>err?fatalError(err):void(".pdf"===extname?(elem=getElem("object"),elem.setAttribute("typemustmatch",!0),elem.setAttribute("type","application/pdf"),elem.setAttribute("data",url)):(elem=getElem("iframe"),elem.sandbox="allow-forms allow-scripts",elem.src=url),cb(null,elem)))}function fatalError(err){err.message=`Error rendering file "${file.name}": ${err.message}`,debug(err.message),cb(err)}const extname=path.extname(file.name).toLowerCase();let currentTime=0,elem;MEDIASOURCE_EXTS.includes(extname)?function(){function useVideostream(){debug(`Use \`videostream\` package for ${file.name}`),prepareElem(),elem.addEventListener("error",fallbackToMediaSource),elem.addEventListener("loadstart",onLoadStart),elem.addEventListener("loadedmetadata",onLoadedMetadata),new VideoStream(file,elem)}function useMediaSource(){debug(`Use MediaSource API for ${file.name}`),prepareElem(),elem.addEventListener("error",fallbackToBlobURL),elem.addEventListener("loadstart",onLoadStart),elem.addEventListener("loadedmetadata",onLoadedMetadata);const wrapper=new MediaElementWrapper(elem),writable=wrapper.createWriteStream(getCodec(file.name));file.createReadStream().pipe(writable),currentTime&&(elem.currentTime=currentTime)}function useBlobURL(){debug(`Use Blob URL for ${file.name}`),prepareElem(),elem.addEventListener("error",fatalError),elem.addEventListener("loadstart",onLoadStart),elem.addEventListener("loadedmetadata",onLoadedMetadata),getBlobURL(file,(err,url)=>err?fatalError(err):void(elem.src=url,currentTime&&(elem.currentTime=currentTime)))}function fallbackToMediaSource(err){debug("videostream error: fallback to MediaSource API: %o",err.message||err),elem.removeEventListener("error",fallbackToMediaSource),elem.removeEventListener("loadedmetadata",onLoadedMetadata),useMediaSource()}function fallbackToBlobURL(err){debug("MediaSource API error: fallback to Blob URL: %o",err.message||err);checkBlobLength()&&(elem.removeEventListener("error",fallbackToBlobURL),elem.removeEventListener("loadedmetadata",onLoadedMetadata),useBlobURL())}function prepareElem(){elem||(elem=getElem(tagName),elem.addEventListener("progress",()=>{currentTime=elem.currentTime}))}const tagName=MEDIASOURCE_VIDEO_EXTS.includes(extname)?"video":"audio";MediaSource?VIDEOSTREAM_EXTS.includes(extname)?useVideostream():useMediaSource():useBlobURL()}():VIDEO_EXTS.includes(extname)?renderMediaElement("video"):AUDIO_EXTS.includes(extname)?renderMediaElement("audio"):IMAGE_EXTS.includes(extname)?function(){elem=getElem("img"),getBlobURL(file,(err,url)=>err?fatalError(err):void(elem.src=url,elem.alt=file.name,cb(null,elem)))}():IFRAME_EXTS.includes(extname)?renderIframe():function(){function done(){isAscii(str)?(debug("File extension \"%s\" appears ascii, so will render.",extname),renderIframe()):(debug("File extension \"%s\" appears non-ascii, will not render.",extname),cb(new Error(`Unsupported file type "${extname}": Cannot append to DOM`)))}debug("Unknown file extension \"%s\" - will attempt to render into iframe",extname);let str="";file.createReadStream({start:0,end:1e3}).setEncoding("utf8").on("data",chunk=>{str+=chunk}).on("end",done).on("error",cb)}()}function getBlobURL(file,cb){const extname=path.extname(file.name).toLowerCase();streamToBlobURL(file.createReadStream(),exports.mime[extname]).then(blobUrl=>cb(null,blobUrl),err=>cb(err))}function validateFile(file){if(null==file)throw new Error("file cannot be null or undefined");if("string"!=typeof file.name)throw new Error("missing or invalid file.name property");if("function"!=typeof file.createReadStream)throw new Error("missing or invalid file.createReadStream property")}function getCodec(name){const extname=path.extname(name).toLowerCase();return{".m4a":"audio/mp4; codecs=\"mp4a.40.5\"",".m4b":"audio/mp4; codecs=\"mp4a.40.5\"",".m4p":"audio/mp4; codecs=\"mp4a.40.5\"",".m4v":"video/mp4; codecs=\"avc1.640029, mp4a.40.5\"",".mkv":"video/webm; codecs=\"avc1.640029, mp4a.40.5\"",".mp3":"audio/mpeg",".mp4":"video/mp4; codecs=\"avc1.640029, mp4a.40.5\"",".webm":"video/webm; codecs=\"vorbis, vp8\""}[extname]}function parseOpts(opts){null==opts.autoplay&&(opts.autoplay=!1),null==opts.muted&&(opts.muted=!1),null==opts.controls&&(opts.controls=!0),null==opts.maxBlobLength&&(opts.maxBlobLength=MAX_BLOB_LENGTH)}function setMediaOpts(elem,opts){elem.autoplay=!!opts.autoplay,elem.muted=!!opts.muted,elem.controls=!!opts.controls}exports.render=function(file,elem,opts,cb){"function"==typeof opts&&(cb=opts,opts={}),opts||(opts={}),cb||(cb=()=>{}),validateFile(file),parseOpts(opts),"string"==typeof elem&&(elem=document.querySelector(elem)),renderMedia(file,tagName=>{if(elem.nodeName!==tagName.toUpperCase()){const extname=path.extname(file.name).toLowerCase();throw new Error(`Cannot render "${extname}" inside a "${elem.nodeName.toLowerCase()}" element, expected "${tagName}"`)}return("video"===tagName||"audio"===tagName)&&setMediaOpts(elem,opts),elem},opts,cb)},exports.append=function(file,rootElem,opts,cb){function createMedia(tagName){const elem=createElem(tagName);return setMediaOpts(elem,opts),rootElem.appendChild(elem),elem}function createElem(tagName){const elem=document.createElement(tagName);return rootElem.appendChild(elem),elem}function done(err,elem){err&&elem&&elem.remove(),cb(err,elem)}if("function"==typeof opts&&(cb=opts,opts={}),opts||(opts={}),cb||(cb=()=>{}),validateFile(file),parseOpts(opts),"string"==typeof rootElem&&(rootElem=document.querySelector(rootElem)),rootElem&&("VIDEO"===rootElem.nodeName||"AUDIO"===rootElem.nodeName))throw new Error("Invalid video/audio node argument. Argument must be root element that video/audio tag will be appended to.");renderMedia(file,function(tagName){return"video"===tagName||"audio"===tagName?createMedia(tagName):createElem(tagName)},opts,done)},exports.mime=require("./lib/mime.json");const debug=require("debug")("render-media"),isAscii=require("is-ascii"),MediaElementWrapper=require("mediasource"),path=require("path"),streamToBlobURL=require("stream-to-blob-url"),VideoStream=require("videostream"),VIDEOSTREAM_EXTS=[".m4a",".m4b",".m4p",".m4v",".mp4"],MEDIASOURCE_VIDEO_EXTS=[".m4v",".mkv",".mp4",".webm"],MEDIASOURCE_EXTS=[].concat(MEDIASOURCE_VIDEO_EXTS,[".m4a",".m4b",".m4p",".mp3"]),VIDEO_EXTS=[".mov",".ogv"],AUDIO_EXTS=[".aac",".oga",".ogg",".wav",".flac"],IMAGE_EXTS=[".bmp",".gif",".jpeg",".jpg",".png",".svg"],IFRAME_EXTS=[".css",".html",".js",".md",".pdf",".srt",".txt"],MAX_BLOB_LENGTH=200000000,MediaSource="undefined"!=typeof window&&window.MediaSource},{"./lib/mime.json":242,debug:105,"is-ascii":160,mediasource:172,path:71,"stream-to-blob-url":272,videostream:290}],242:[function(require,module){module.exports={".3gp":"video/3gpp",".aac":"audio/aac",".aif":"audio/x-aiff",".aiff":"audio/x-aiff",".atom":"application/atom+xml",".avi":"video/x-msvideo",".bmp":"image/bmp",".bz2":"application/x-bzip2",".conf":"text/plain",".css":"text/css",".csv":"text/plain",".diff":"text/x-diff",".doc":"application/msword",".flv":"video/x-flv",".gif":"image/gif",".gz":"application/x-gzip",".htm":"text/html",".html":"text/html",".ico":"image/vnd.microsoft.icon",".ics":"text/calendar",".iso":"application/octet-stream",".jar":"application/java-archive",".jpeg":"image/jpeg",".jpg":"image/jpeg",".js":"application/javascript",".json":"application/json",".less":"text/css",".log":"text/plain",".m3u":"audio/x-mpegurl",".m4a":"audio/x-m4a",".m4b":"audio/mp4",".m4p":"audio/mp4",".m4v":"video/x-m4v",".manifest":"text/cache-manifest",".markdown":"text/x-markdown",".mathml":"application/mathml+xml",".md":"text/x-markdown",".mid":"audio/midi",".midi":"audio/midi",".mov":"video/quicktime",".mp3":"audio/mpeg",".mp4":"video/mp4",".mp4v":"video/mp4",".mpeg":"video/mpeg",".mpg":"video/mpeg",".odp":"application/vnd.oasis.opendocument.presentation",".ods":"application/vnd.oasis.opendocument.spreadsheet",".odt":"application/vnd.oasis.opendocument.text",".oga":"audio/ogg",".ogg":"application/ogg",".pdf":"application/pdf",".png":"image/png",".pps":"application/vnd.ms-powerpoint",".ppt":"application/vnd.ms-powerpoint",".ps":"application/postscript",".psd":"image/vnd.adobe.photoshop",".qt":"video/quicktime",".rar":"application/x-rar-compressed",".rdf":"application/rdf+xml",".rss":"application/rss+xml",".rtf":"application/rtf",".svg":"image/svg+xml",".svgz":"image/svg+xml",".swf":"application/x-shockwave-flash",".tar":"application/x-tar",".tbz":"application/x-bzip-compressed-tar",".text":"text/plain",".tif":"image/tiff",".tiff":"image/tiff",".torrent":"application/x-bittorrent",".ttf":"application/x-font-ttf",".txt":"text/plain",".wav":"audio/wav",".webm":"video/webm",".wma":"audio/x-ms-wma",".wmv":"video/x-ms-wmv",".xls":"application/vnd.ms-excel",".xml":"application/xml",".yaml":"text/yaml",".yml":"text/yaml",".zip":"application/zip"}},{}],243:[function(require,module){"use strict";function RIPEMD160(){HashBase.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function rotl(x,n){return x<>>32-n}function fn1(a,b,c,d,e,m,k,s){return 0|rotl(0|a+(b^c^d)+m+k,s)+e}function fn2(a,b,c,d,e,m,k,s){return 0|rotl(0|a+(b&c|~b&d)+m+k,s)+e}function fn3(a,b,c,d,e,m,k,s){return 0|rotl(0|a+((b|~c)^d)+m+k,s)+e}function fn4(a,b,c,d,e,m,k,s){return 0|rotl(0|a+(b&d|c&~d)+m+k,s)+e}function fn5(a,b,c,d,e,m,k,s){return 0|rotl(0|a+(b^(c|~d))+m+k,s)+e}var Buffer=require("buffer").Buffer,inherits=require("inherits"),HashBase=require("hash-base"),ARRAY16=Array(16),zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0];inherits(RIPEMD160,HashBase),RIPEMD160.prototype._update=function(){for(var words=ARRAY16,j=0;16>j;++j)words[j]=this._block.readInt32LE(4*j);for(var al=0|this._a,bl=0|this._b,cl=0|this._c,dl=0|this._d,el=0|this._e,ar=0|this._a,br=0|this._b,cr=0|this._c,dr=0|this._d,er=0|this._e,i=0;80>i;i+=1){var tl,tr;16>i?(tl=fn1(al,bl,cl,dl,el,words[zl[i]],hl[0],sl[i]),tr=fn5(ar,br,cr,dr,er,words[zr[i]],hr[0],sr[i])):32>i?(tl=fn2(al,bl,cl,dl,el,words[zl[i]],hl[1],sl[i]),tr=fn4(ar,br,cr,dr,er,words[zr[i]],hr[1],sr[i])):48>i?(tl=fn3(al,bl,cl,dl,el,words[zl[i]],hl[2],sl[i]),tr=fn3(ar,br,cr,dr,er,words[zr[i]],hr[2],sr[i])):64>i?(tl=fn4(al,bl,cl,dl,el,words[zl[i]],hl[3],sl[i]),tr=fn2(ar,br,cr,dr,er,words[zr[i]],hr[3],sr[i])):(tl=fn5(al,bl,cl,dl,el,words[zl[i]],hl[4],sl[i]),tr=fn1(ar,br,cr,dr,er,words[zr[i]],hr[4],sr[i])),al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=tl,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=tr}var t=0|this._b+cl+dr;this._b=0|this._c+dl+er,this._c=0|this._d+el+ar,this._d=0|this._e+al+br,this._e=0|this._a+bl+cr,this._a=t},RIPEMD160.prototype._digest=function(){this._block[this._blockOffset++]=128,56>2)+1;i>2]|=128<<24-(chunkLen%4<<3),bin[(-16&(chunkLen>>2)+2)+14]=0|msgLen/536870912,bin[(-16&(chunkLen>>2)+2)+15]=msgLen<<3},getRawDigest=function(heap,padMaxChunkLen){var io=new Int32Array(heap,padMaxChunkLen+320,5),out=new Int32Array(5),arr=new DataView(out.buffer);return arr.setInt32(0,io[0],!1),arr.setInt32(4,io[1],!1),arr.setInt32(8,io[2],!1),arr.setInt32(12,io[3],!1),arr.setInt32(16,io[4],!1),out},Rusha=function(){function Rusha(chunkSize){if(_classCallCheck(this,Rusha),chunkSize=chunkSize||65536,0>2);return padZeroes(view,chunkLen),padData(view,chunkLen,msgLen),padChunkLen},Rusha.prototype._write=function(data,chunkOffset,chunkLen,off){conv(data,this._h8,this._h32,chunkOffset,chunkLen,off||0)},Rusha.prototype._coreCall=function(data,chunkOffset,chunkLen,msgLen,finalize){var padChunkLen=chunkLen;this._write(data,chunkOffset,chunkLen),finalize&&(padChunkLen=this._padChunk(chunkLen,msgLen)),this._core.hash(padChunkLen,this._padMaxChunkLen)},Rusha.prototype.rawDigest=function(str){var msgLen=str.byteLength||str.length||str.size||0;this._initState(this._heap,this._padMaxChunkLen);var chunkOffset=0,chunkLen=this._maxChunkLen;for(chunkOffset=0;msgLen>chunkOffset+chunkLen;chunkOffset+=chunkLen)this._coreCall(str,chunkOffset,chunkLen,msgLen,!1);return this._coreCall(str,chunkOffset,msgLen-chunkOffset,msgLen,!0),getRawDigest(this._heap,this._padMaxChunkLen)},Rusha.prototype.digest=function(str){return toHex(this.rawDigest(str).buffer)},Rusha.prototype.digestFromString=function(str){return this.digest(str)},Rusha.prototype.digestFromBuffer=function(str){return this.digest(str)},Rusha.prototype.digestFromArrayBuffer=function(str){return this.digest(str)},Rusha.prototype.resetState=function(){return this._initState(this._heap,this._padMaxChunkLen),this},Rusha.prototype.append=function(chunk){var chunkOffset=0,chunkLen=chunk.byteLength||chunk.length||chunk.size||0,turnOffset=this._offset%this._maxChunkLen,inputLen=void 0;for(this._offset+=chunkLen;chunkOffseti;i++)precomputedHex[i]=(16>i?"0":"")+i.toString(16);module.exports.toHex=function(arrayBuffer){for(var binarray=new Uint8Array(arrayBuffer),res=Array(arrayBuffer.byteLength),_i=0;_i=v)return 65536;if(16777216>v)for(p=1;p>2],y1$851=0|H$843[x$846+324>>2],y2$853=0|H$843[x$846+328>>2],y3$855=0|H$843[x$846+332>>2],y4$857=0|H$843[x$846+336>>2],i$847=0;(0|i$847)<(0|k$845);i$847=0|i$847+64){for(z0$850=y0$849,z1$852=y1$851,z2$854=y2$853,z3$856=y3$855,z4$858=y4$857,j$848=0;64>(0|j$848);j$848=0|j$848+4)t1$860=0|H$843[i$847+j$848>>2],t0$859=0|(0|(y0$849<<5|y0$849>>>27)+(y1$851&y2$853|~y1$851&y3$855))+(0|(0|t1$860+y4$857)+1518500249),y4$857=y3$855,y3$855=y2$853,y2$853=y1$851<<30|y1$851>>>2,y1$851=y0$849,y0$849=t0$859,H$843[k$845+j$848>>2]=t1$860;for(j$848=0|k$845+64;(0|j$848)<(0|k$845+80);j$848=0|j$848+4)t1$860=(H$843[j$848-12>>2]^H$843[j$848-32>>2]^H$843[j$848-56>>2]^H$843[j$848-64>>2])<<1|(H$843[j$848-12>>2]^H$843[j$848-32>>2]^H$843[j$848-56>>2]^H$843[j$848-64>>2])>>>31,t0$859=0|(0|(y0$849<<5|y0$849>>>27)+(y1$851&y2$853|~y1$851&y3$855))+(0|(0|t1$860+y4$857)+1518500249),y4$857=y3$855,y3$855=y2$853,y2$853=y1$851<<30|y1$851>>>2,y1$851=y0$849,y0$849=t0$859,H$843[j$848>>2]=t1$860;for(j$848=0|k$845+80;(0|j$848)<(0|k$845+160);j$848=0|j$848+4)t1$860=(H$843[j$848-12>>2]^H$843[j$848-32>>2]^H$843[j$848-56>>2]^H$843[j$848-64>>2])<<1|(H$843[j$848-12>>2]^H$843[j$848-32>>2]^H$843[j$848-56>>2]^H$843[j$848-64>>2])>>>31,t0$859=0|(0|(y0$849<<5|y0$849>>>27)+(y1$851^y2$853^y3$855))+(0|(0|t1$860+y4$857)+1859775393),y4$857=y3$855,y3$855=y2$853,y2$853=y1$851<<30|y1$851>>>2,y1$851=y0$849,y0$849=t0$859,H$843[j$848>>2]=t1$860;for(j$848=0|k$845+160;(0|j$848)<(0|k$845+240);j$848=0|j$848+4)t1$860=(H$843[j$848-12>>2]^H$843[j$848-32>>2]^H$843[j$848-56>>2]^H$843[j$848-64>>2])<<1|(H$843[j$848-12>>2]^H$843[j$848-32>>2]^H$843[j$848-56>>2]^H$843[j$848-64>>2])>>>31,t0$859=0|(0|(y0$849<<5|y0$849>>>27)+(y1$851&y2$853|y1$851&y3$855|y2$853&y3$855))+(0|(0|t1$860+y4$857)-1894007588),y4$857=y3$855,y3$855=y2$853,y2$853=y1$851<<30|y1$851>>>2,y1$851=y0$849,y0$849=t0$859,H$843[j$848>>2]=t1$860;for(j$848=0|k$845+240;(0|j$848)<(0|k$845+320);j$848=0|j$848+4)t1$860=(H$843[j$848-12>>2]^H$843[j$848-32>>2]^H$843[j$848-56>>2]^H$843[j$848-64>>2])<<1|(H$843[j$848-12>>2]^H$843[j$848-32>>2]^H$843[j$848-56>>2]^H$843[j$848-64>>2])>>>31,t0$859=0|(0|(y0$849<<5|y0$849>>>27)+(y1$851^y2$853^y3$855))+(0|(0|t1$860+y4$857)-899497514),y4$857=y3$855,y3$855=y2$853,y2$853=y1$851<<30|y1$851>>>2,y1$851=y0$849,y0$849=t0$859,H$843[j$848>>2]=t1$860;y0$849=0|y0$849+z0$850,y1$851=0|y1$851+z1$852,y2$853=0|y2$853+z2$854,y3$855=0|y3$855+z3$856,y4$857=0|y4$857+z4$858}H$843[x$846+320>>2]=y0$849,H$843[x$846+324>>2]=y1$851,H$843[x$846+328>>2]=y2$853,H$843[x$846+332>>2]=y3$855,H$843[x$846+336>>2]=y4$857}}}},function(module){var _this=this,reader=void 0;"undefined"!=typeof self&&"undefined"!=typeof self.FileReaderSync&&(reader=new self.FileReaderSync);var convStr=function(str,H8,H32,start,len,off){var om=off%4,lm=(len+om)%4,j=len-lm,i;switch(om){case 0:H8[off]=str.charCodeAt(start+3);case 1:H8[0|off+1-(om<<1)]=str.charCodeAt(start+2);case 2:H8[0|off+2-(om<<1)]=str.charCodeAt(start+1);case 3:H8[0|off+3-(om<<1)]=str.charCodeAt(start);}if(!(len>2]=str.charCodeAt(start+i)<<24|str.charCodeAt(start+i+1)<<16|str.charCodeAt(start+i+2)<<8|str.charCodeAt(start+i+3);switch(lm){case 3:H8[0|off+j+1]=str.charCodeAt(start+j+2);case 2:H8[0|off+j+2]=str.charCodeAt(start+j+1);case 1:H8[0|off+j+3]=str.charCodeAt(start+j);}}},convBuf=function(buf,H8,H32,start,len,off){var om=off%4,lm=(len+om)%4,j=len-lm,i;switch(om){case 0:H8[off]=buf[start+3];case 1:H8[0|off+1-(om<<1)]=buf[start+2];case 2:H8[0|off+2-(om<<1)]=buf[start+1];case 3:H8[0|off+3-(om<<1)]=buf[start];}if(!(len>2]=buf[start+i]<<24|buf[start+i+1]<<16|buf[start+i+2]<<8|buf[start+i+3];switch(lm){case 3:H8[0|off+j+1]=buf[start+j+2];case 2:H8[0|off+j+2]=buf[start+j+1];case 1:H8[0|off+j+3]=buf[start+j];}}},convBlob=function(blob,H8,H32,start,len,off){var i=void 0,om=off%4,lm=(len+om)%4,j=len-lm,buf=new Uint8Array(reader.readAsArrayBuffer(blob.slice(start,start+len)));switch(om){case 0:H8[off]=buf[3];case 1:H8[0|off+1-(om<<1)]=buf[2];case 2:H8[0|off+2-(om<<1)]=buf[1];case 3:H8[0|off+3-(om<<1)]=buf[0];}if(!(len>2]=buf[i]<<24|buf[i+1]<<16|buf[i+2]<<8|buf[i+3];switch(lm){case 3:H8[0|off+j+1]=buf[j+2];case 2:H8[0|off+j+2]=buf[j+1];case 1:H8[0|off+j+3]=buf[j];}}};module.exports=function(data,H8,H32,start,len,off){if("string"==typeof data)return convStr(data,H8,H32,start,len,off);if(data instanceof Array)return convBuf(data,H8,H32,start,len,off);if(_this&&_this.Buffer&&_this.Buffer.isBuffer(data))return convBuf(data,H8,H32,start,len,off);if(data instanceof ArrayBuffer)return convBuf(new Uint8Array(data),H8,H32,start,len,off);if(data.buffer instanceof ArrayBuffer)return convBuf(new Uint8Array(data.buffer,data.byteOffset,data.byteLength),H8,H32,start,len,off);if(data instanceof Blob)return convBlob(data,H8,H32,start,len,off);throw new Error("Unsupported data type.")}},function(module,exports,__webpack_require__){function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function defineProperties(target,props){for(var i=0,descriptor;i */var buffer=require("buffer"),Buffer=buffer.Buffer;Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow?module.exports=buffer:(copyProps(buffer,exports),exports.Buffer=SafeBuffer),SafeBuffer.prototype=Object.create(Buffer.prototype),copyProps(Buffer,SafeBuffer),SafeBuffer.from=function(arg,encodingOrOffset,length){if("number"==typeof arg)throw new TypeError("Argument must not be a number");return Buffer(arg,encodingOrOffset,length)},SafeBuffer.alloc=function(size,fill,encoding){if("number"!=typeof size)throw new TypeError("Argument must be a number");var buf=Buffer(size);return void 0===fill?buf.fill(0):"string"==typeof encoding?buf.fill(fill,encoding):buf.fill(fill),buf},SafeBuffer.allocUnsafe=function(size){if("number"!=typeof size)throw new TypeError("Argument must be a number");return Buffer(size)},SafeBuffer.allocUnsafeSlow=function(size){if("number"!=typeof size)throw new TypeError("Argument must be a number");return buffer.SlowBuffer(size)}},{buffer:69}],248:[function(require,module){(function(process){(function(){"use strict";var buffer=require("buffer"),Buffer=buffer.Buffer,safer={},key;for(key in buffer)buffer.hasOwnProperty(key)&&"SlowBuffer"!==key&&"Buffer"!==key&&(safer[key]=buffer[key]);var Safer=safer.Buffer={};for(key in Buffer)Buffer.hasOwnProperty(key)&&"allocUnsafe"!==key&&"allocUnsafeSlow"!==key&&(Safer[key]=Buffer[key]);if(safer.Buffer.prototype=Buffer.prototype,Safer.from&&Safer.from!==Uint8Array.from||(Safer.from=function(value,encodingOrOffset,length){if("number"==typeof value)throw new TypeError("The \"value\" argument must not be of type number. Received type "+typeof value);if(value&&"undefined"==typeof value.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);return Buffer(value,encodingOrOffset,length)}),Safer.alloc||(Safer.alloc=function(size,fill,encoding){if("number"!=typeof size)throw new TypeError("The \"size\" argument must be of type number. Received type "+typeof size);if(0>size||2147483648<=size)throw new RangeError("The value \""+size+"\" is invalid for option \"size\"");var buf=Buffer(size);return fill&&0!==fill.length?"string"==typeof encoding?buf.fill(fill,encoding):buf.fill(fill):buf.fill(0),buf}),!safer.kStringMaxLength)try{safer.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}safer.constants||(safer.constants={MAX_LENGTH:safer.kMaxLength},safer.kStringMaxLength&&(safer.constants.MAX_STRING_LENGTH=safer.kStringMaxLength)),module.exports=safer}).call(this)}).call(this,require("_process"))},{_process:205,buffer:69}],249:[function(require,module){function Hash(blockSize,finalSize){this._block=Buffer.alloc(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0}var Buffer=require("safe-buffer").Buffer;Hash.prototype.update=function(data,enc){"string"==typeof data&&(enc=enc||"utf8",data=Buffer.from(data,enc));for(var block=this._block,blockSize=this._blockSize,length=data.length,accum=this._len,offset=0;offset=this._finalSize&&(this._update(this._block),this._block.fill(0));var bits=8*this._len;if(4294967295>=bits)this._block.writeUInt32BE(bits,this._blockSize-4);else{var lowBits=(4294967295&bits)>>>0;this._block.writeUInt32BE((bits-lowBits)/4294967296,this._blockSize-8),this._block.writeUInt32BE(lowBits,this._blockSize-4)}this._update(this._block);var hash=this._hash();return enc?hash.toString(enc):hash},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},module.exports=Hash},{"safe-buffer":247}],250:[function(require,module,exports){var exports=module.exports=function(algorithm){algorithm=algorithm.toLowerCase();var Algorithm=exports[algorithm];if(!Algorithm)throw new Error(algorithm+" is not supported (we accept pull requests)");return new Algorithm};exports.sha=require("./sha"),exports.sha1=require("./sha1"),exports.sha224=require("./sha224"),exports.sha256=require("./sha256"),exports.sha384=require("./sha384"),exports.sha512=require("./sha512")},{"./sha":251,"./sha1":252,"./sha224":253,"./sha256":254,"./sha384":255,"./sha512":256}],251:[function(require,module){function Sha(){this.init(),this._w=W,Hash.call(this,64,56)}function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){return 0===s?b&c|~b&d:2===s?b&c|b&d|c&d:b^c^d}var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1518500249,1859775393,-1894007588,-899497514],W=Array(80);inherits(Sha,Hash),Sha.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha.prototype._update=function(M){for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,i=0;16>i;++i)W[i]=M.readInt32BE(4*i);for(;80>i;++i)W[i]=W[i-3]^W[i-8]^W[i-14]^W[i-16];for(var j=0;80>j;++j){var s=~~(j/20),t=0|rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s];e=d,d=c,c=rotl30(b),b=a,a=t}this._a=0|a+this._a,this._b=0|b+this._b,this._c=0|c+this._c,this._d=0|d+this._d,this._e=0|e+this._e},Sha.prototype._hash=function(){var H=Buffer.allocUnsafe(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha},{"./hash":249,inherits:159,"safe-buffer":247}],252:[function(require,module){function Sha1(){this.init(),this._w=W,Hash.call(this,64,56)}function rotl1(num){return num<<1|num>>>31}function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){return 0===s?b&c|~b&d:2===s?b&c|b&d|c&d:b^c^d}var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1518500249,1859775393,-1894007588,-899497514],W=Array(80);inherits(Sha1,Hash),Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha1.prototype._update=function(M){for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,i=0;16>i;++i)W[i]=M.readInt32BE(4*i);for(;80>i;++i)W[i]=rotl1(W[i-3]^W[i-8]^W[i-14]^W[i-16]);for(var j=0;80>j;++j){var s=~~(j/20),t=0|rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s];e=d,d=c,c=rotl30(b),b=a,a=t}this._a=0|a+this._a,this._b=0|b+this._b,this._c=0|c+this._c,this._d=0|d+this._d,this._e=0|e+this._e},Sha1.prototype._hash=function(){var H=Buffer.allocUnsafe(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha1},{"./hash":249,inherits:159,"safe-buffer":247}],253:[function(require,module){function Sha224(){this.init(),this._w=W,Hash.call(this,64,56)}var inherits=require("inherits"),Sha256=require("./sha256"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,W=Array(64);inherits(Sha224,Sha256),Sha224.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Sha224.prototype._hash=function(){var H=Buffer.allocUnsafe(28);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H},module.exports=Sha224},{"./hash":249,"./sha256":254,inherits:159,"safe-buffer":247}],254:[function(require,module){function Sha256(){this.init(),this._w=W,Hash.call(this,64,56)}function ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x){return(x>>>2|x<<30)^(x>>>13|x<<19)^(x>>>22|x<<10)}function sigma1(x){return(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7)}function gamma0(x){return(x>>>7|x<<25)^(x>>>18|x<<14)^x>>>3}function gamma1(x){return(x>>>17|x<<15)^(x>>>19|x<<13)^x>>>10}var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],W=Array(64);inherits(Sha256,Hash),Sha256.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},Sha256.prototype._update=function(M){for(var W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,i=0;16>i;++i)W[i]=M.readInt32BE(4*i);for(;64>i;++i)W[i]=0|gamma1(W[i-2])+W[i-7]+gamma0(W[i-15])+W[i-16];for(var j=0;64>j;++j){var T1=0|h+sigma1(e)+ch(e,f,g)+K[j]+W[j],T2=0|sigma0(a)+maj(a,b,c);h=g,g=f,f=e,e=0|d+T1,d=c,c=b,b=a,a=0|T1+T2}this._a=0|a+this._a,this._b=0|b+this._b,this._c=0|c+this._c,this._d=0|d+this._d,this._e=0|e+this._e,this._f=0|f+this._f,this._g=0|g+this._g,this._h=0|h+this._h},Sha256.prototype._hash=function(){var H=Buffer.allocUnsafe(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},module.exports=Sha256},{"./hash":249,inherits:159,"safe-buffer":247}],255:[function(require,module){function Sha384(){this.init(),this._w=W,Hash.call(this,128,112)}var inherits=require("inherits"),SHA512=require("./sha512"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,W=Array(160);inherits(Sha384,SHA512),Sha384.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Sha384.prototype._hash=function(){function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}var H=Buffer.allocUnsafe(48);return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),H},module.exports=Sha384},{"./hash":249,"./sha512":256,inherits:159,"safe-buffer":247}],256:[function(require,module){function Sha512(){this.init(),this._w=W,Hash.call(this,128,112)}function Ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x,xl){return(x>>>28|xl<<4)^(xl>>>2|x<<30)^(xl>>>7|x<<25)}function sigma1(x,xl){return(x>>>14|xl<<18)^(x>>>18|xl<<14)^(xl>>>9|x<<23)}function Gamma0(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^x>>>7}function Gamma0l(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^(x>>>7|xl<<25)}function Gamma1(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^x>>>6}function Gamma1l(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^(x>>>6|xl<<26)}function getCarry(a,b){return a>>>0>>0?1:0}var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],W=Array(160);inherits(Sha512,Hash),Sha512.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},Sha512.prototype._update=function(M){for(var W=this._w,ah=0|this._ah,bh=0|this._bh,ch=0|this._ch,dh=0|this._dh,eh=0|this._eh,fh=0|this._fh,gh=0|this._gh,hh=0|this._hh,al=0|this._al,bl=0|this._bl,cl=0|this._cl,dl=0|this._dl,el=0|this._el,fl=0|this._fl,gl=0|this._gl,hl=0|this._hl,i=0;32>i;i+=2)W[i]=M.readInt32BE(4*i),W[i+1]=M.readInt32BE(4*i+4);for(;160>i;i+=2){var xh=W[i-30],xl=W[i-30+1],gamma0=Gamma0(xh,xl),gamma0l=Gamma0l(xl,xh);xh=W[i-4],xl=W[i-4+1];var gamma1=Gamma1(xh,xl),gamma1l=Gamma1l(xl,xh),Wi7h=W[i-14],Wi7l=W[i-14+1],Wi16h=W[i-32],Wi16l=W[i-32+1],Wil=0|gamma0l+Wi7l,Wih=0|gamma0+Wi7h+getCarry(Wil,gamma0l);Wil=0|Wil+gamma1l,Wih=0|Wih+gamma1+getCarry(Wil,gamma1l),Wil=0|Wil+Wi16l,Wih=0|Wih+Wi16h+getCarry(Wil,Wi16l),W[i]=Wih,W[i+1]=Wil}for(var j=0;160>j;j+=2){Wih=W[j],Wil=W[j+1];var majh=maj(ah,bh,ch),majl=maj(al,bl,cl),sigma0h=sigma0(ah,al),sigma0l=sigma0(al,ah),sigma1h=sigma1(eh,el),sigma1l=sigma1(el,eh),Kih=K[j],Kil=K[j+1],chh=Ch(eh,fh,gh),chl=Ch(el,fl,gl),t1l=0|hl+sigma1l,t1h=0|hh+sigma1h+getCarry(t1l,hl);t1l=0|t1l+chl,t1h=0|t1h+chh+getCarry(t1l,chl),t1l=0|t1l+Kil,t1h=0|t1h+Kih+getCarry(t1l,Kil),t1l=0|t1l+Wil,t1h=0|t1h+Wih+getCarry(t1l,Wil);var t2l=0|sigma0l+majl,t2h=0|sigma0h+majh+getCarry(t2l,sigma0l);hh=gh,hl=gl,gh=fh,gl=fl,fh=eh,fl=el,el=0|dl+t1l,eh=0|dh+t1h+getCarry(el,dl),dh=ch,dl=cl,ch=bh,cl=bl,bh=ah,bl=al,al=0|t1l+t2l,ah=0|t1h+t2h+getCarry(al,t1l)}this._al=0|this._al+al,this._bl=0|this._bl+bl,this._cl=0|this._cl+cl,this._dl=0|this._dl+dl,this._el=0|this._el+el,this._fl=0|this._fl+fl,this._gl=0|this._gl+gl,this._hl=0|this._hl+hl,this._ah=0|this._ah+ah+getCarry(this._al,al),this._bh=0|this._bh+bh+getCarry(this._bl,bl),this._ch=0|this._ch+ch+getCarry(this._cl,cl),this._dh=0|this._dh+dh+getCarry(this._dl,dl),this._eh=0|this._eh+eh+getCarry(this._el,el),this._fh=0|this._fh+fh+getCarry(this._fl,fl),this._gh=0|this._gh+gh+getCarry(this._gl,gl),this._hh=0|this._hh+hh+getCarry(this._hl,hl)},Sha512.prototype._hash=function(){function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}var H=Buffer.allocUnsafe(64);return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),writeInt64BE(this._gh,this._gl,48),writeInt64BE(this._hh,this._hl,56),H},module.exports=Sha512},{"./hash":249,inherits:159,"safe-buffer":247}],257:[function(require,module){(function(Buffer){(function(){/*! simple-concat. MIT License. Feross Aboukhadijeh */module.exports=function(stream,cb){var chunks=[];stream.on("data",function(chunk){chunks.push(chunk)}),stream.once("end",function(){cb&&cb(null,Buffer.concat(chunks)),cb=null}),stream.once("error",function(err){cb&&cb(err),cb=null})}}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69}],258:[function(require,module){(function(Buffer){(function(){function simpleGet(opts,cb){if(opts=Object.assign({maxRedirects:10},"string"==typeof opts?{url:opts}:opts),cb=once(cb),opts.url){const{hostname,port,protocol,auth,path}=url.parse(opts.url);delete opts.url,hostname||port||protocol||auth?Object.assign(opts,{hostname,port,protocol,auth,path}):opts.path=path}const headers={"accept-encoding":"gzip, deflate"};opts.headers&&Object.keys(opts.headers).forEach(k=>headers[k.toLowerCase()]=opts.headers[k]),opts.headers=headers;let body;opts.body?body=opts.json&&!isStream(opts.body)?JSON.stringify(opts.body):opts.body:opts.form&&(body="string"==typeof opts.form?opts.form:querystring.stringify(opts.form),opts.headers["content-type"]="application/x-www-form-urlencoded"),body&&(!opts.method&&(opts.method="POST"),!isStream(body)&&(opts.headers["content-length"]=Buffer.byteLength(body)),opts.json&&!opts.form&&(opts.headers["content-type"]="application/json")),delete opts.body,delete opts.form,opts.json&&(opts.headers.accept="application/json"),opts.method&&(opts.method=opts.method.toUpperCase());const originalHost=opts.hostname,protocol="https:"===opts.protocol?https:http,req=protocol.request(opts,res=>{if(!1!==opts.followRedirects&&300<=res.statusCode&&400>res.statusCode&&res.headers.location){opts.url=res.headers.location,delete opts.headers.host,res.resume();const redirectHost=url.parse(opts.url).hostname;return null!==redirectHost&&redirectHost!==originalHost&&(delete opts.headers.cookie,delete opts.headers.authorization),"POST"===opts.method&&[301,302].includes(res.statusCode)&&(opts.method="GET",delete opts.headers["content-length"],delete opts.headers["content-type"]),0==opts.maxRedirects--?cb(new Error("too many redirects")):simpleGet(opts,cb)}const tryUnzip="function"==typeof decompressResponse&&"HEAD"!==opts.method;cb(null,tryUnzip?decompressResponse(res):res)});return req.on("timeout",()=>{req.abort(),cb(new Error("Request timed out"))}),req.on("error",cb),isStream(body)?body.on("error",cb).pipe(req):req.end(body),req}module.exports=simpleGet;const concat=require("simple-concat"),decompressResponse=require("decompress-response"),http=require("http"),https=require("https"),once=require("once"),querystring=require("querystring"),url=require("url"),isStream=o=>null!==o&&"object"==typeof o&&"function"==typeof o.pipe;simpleGet.concat=(opts,cb)=>simpleGet(opts,(err,res)=>err?cb(err):void concat(res,(err,data)=>{if(err)return cb(err);if(opts.json)try{data=JSON.parse(data.toString())}catch(err){return cb(err,res,data)}cb(null,res,data)})),["get","post","put","patch","head","delete"].forEach(method=>{simpleGet[method]=(opts,cb)=>("string"==typeof opts&&(opts={url:opts}),simpleGet(Object.assign({method:method.toUpperCase()},opts),cb))})}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69,"decompress-response":41,http:268,https:156,once:191,querystring:217,"simple-concat":257,url:285}],259:[function(require,module){function filterTrickle(sdp){return sdp.replace(/a=ice-options:trickle\s\n/g,"")}function warn(message){console.warn(message)}/*! simple-peer. MIT License. Feross Aboukhadijeh */const debug=require("debug")("simple-peer"),getBrowserRTC=require("get-browser-rtc"),randombytes=require("randombytes"),stream=require("readable-stream"),queueMicrotask=require("queue-microtask"),errCode=require("err-code"),{Buffer}=require("buffer"),MAX_BUFFERED_AMOUNT=65536;class Peer extends stream.Duplex{constructor(opts){if(opts=Object.assign({allowHalfOpen:!1},opts),super(opts),this._id=randombytes(4).toString("hex").slice(0,7),this._debug("new peer %o",opts),this.channelName=opts.initiator?opts.channelName||randombytes(20).toString("hex"):null,this.initiator=opts.initiator||!1,this.channelConfig=opts.channelConfig||Peer.channelConfig,this.channelNegotiated=this.channelConfig.negotiated,this.config=Object.assign({},Peer.config,opts.config),this.offerOptions=opts.offerOptions||{},this.answerOptions=opts.answerOptions||{},this.sdpTransform=opts.sdpTransform||(sdp=>sdp),this.streams=opts.streams||(opts.stream?[opts.stream]:[]),this.trickle=void 0===opts.trickle||opts.trickle,this.allowHalfTrickle=void 0!==opts.allowHalfTrickle&&opts.allowHalfTrickle,this.iceCompleteTimeout=opts.iceCompleteTimeout||5000,this.destroyed=!1,this.destroying=!1,this._connected=!1,this.remoteAddress=void 0,this.remoteFamily=void 0,this.remotePort=void 0,this.localAddress=void 0,this.localFamily=void 0,this.localPort=void 0,this._wrtc=opts.wrtc&&"object"==typeof opts.wrtc?opts.wrtc:getBrowserRTC(),!this._wrtc)if("undefined"==typeof window)throw errCode(new Error("No WebRTC support: Specify `opts.wrtc` option in this environment"),"ERR_WEBRTC_SUPPORT");else throw errCode(new Error("No WebRTC support: Not a supported browser"),"ERR_WEBRTC_SUPPORT");this._pcReady=!1,this._channelReady=!1,this._iceComplete=!1,this._iceCompleteTimer=null,this._channel=null,this._pendingCandidates=[],this._isNegotiating=!1,this._firstNegotiation=!0,this._batchedNegotiation=!1,this._queuedNegotiation=!1,this._sendersAwaitingStable=[],this._senderMap=new Map,this._closingInterval=null,this._remoteTracks=[],this._remoteStreams=[],this._chunk=null,this._cb=null,this._interval=null;try{this._pc=new this._wrtc.RTCPeerConnection(this.config)}catch(err){return void this.destroy(errCode(err,"ERR_PC_CONSTRUCTOR"))}this._isReactNativeWebrtc="number"==typeof this._pc._peerConnectionId,this._pc.oniceconnectionstatechange=()=>{this._onIceStateChange()},this._pc.onicegatheringstatechange=()=>{this._onIceStateChange()},this._pc.onconnectionstatechange=()=>{this._onConnectionStateChange()},this._pc.onsignalingstatechange=()=>{this._onSignalingStateChange()},this._pc.onicecandidate=event=>{this._onIceCandidate(event)},"object"==typeof this._pc.peerIdentity&&this._pc.peerIdentity.catch(err=>{this.destroy(errCode(err,"ERR_PC_PEER_IDENTITY"))}),this.initiator||this.channelNegotiated?this._setupData({channel:this._pc.createDataChannel(this.channelName,this.channelConfig)}):this._pc.ondatachannel=event=>{this._setupData(event)},this.streams&&this.streams.forEach(stream=>{this.addStream(stream)}),this._pc.ontrack=event=>{this._onTrack(event)},this._debug("initial negotiation"),this._needsNegotiation(),this._onFinishBound=()=>{this._onFinish()},this.once("finish",this._onFinishBound)}get bufferSize(){return this._channel&&this._channel.bufferedAmount||0}get connected(){return this._connected&&"open"===this._channel.readyState}address(){return{port:this.localPort,family:this.localFamily,address:this.localAddress}}signal(data){if(!this.destroying){if(this.destroyed)throw errCode(new Error("cannot signal after peer is destroyed"),"ERR_DESTROYED");if("string"==typeof data)try{data=JSON.parse(data)}catch(err){data={}}this._debug("signal()"),data.renegotiate&&this.initiator&&(this._debug("got request to renegotiate"),this._needsNegotiation()),data.transceiverRequest&&this.initiator&&(this._debug("got request for transceiver"),this.addTransceiver(data.transceiverRequest.kind,data.transceiverRequest.init)),data.candidate&&(this._pc.remoteDescription&&this._pc.remoteDescription.type?this._addIceCandidate(data.candidate):this._pendingCandidates.push(data.candidate)),data.sdp&&this._pc.setRemoteDescription(new this._wrtc.RTCSessionDescription(data)).then(()=>{this.destroyed||(this._pendingCandidates.forEach(candidate=>{this._addIceCandidate(candidate)}),this._pendingCandidates=[],"offer"===this._pc.remoteDescription.type&&this._createAnswer())}).catch(err=>{this.destroy(errCode(err,"ERR_SET_REMOTE_DESCRIPTION"))}),data.sdp||data.candidate||data.renegotiate||data.transceiverRequest||this.destroy(errCode(new Error("signal() called with invalid signal data"),"ERR_SIGNALING"))}}_addIceCandidate(candidate){const iceCandidateObj=new this._wrtc.RTCIceCandidate(candidate);this._pc.addIceCandidate(iceCandidateObj).catch(err=>{!iceCandidateObj.address||iceCandidateObj.address.endsWith(".local")?warn("Ignoring unsupported ICE candidate."):this.destroy(errCode(err,"ERR_ADD_ICE_CANDIDATE"))})}send(chunk){if(!this.destroying){if(this.destroyed)throw errCode(new Error("cannot send after peer is destroyed"),"ERR_DESTROYED");this._channel.send(chunk)}}addTransceiver(kind,init){if(!this.destroying){if(this.destroyed)throw errCode(new Error("cannot addTransceiver after peer is destroyed"),"ERR_DESTROYED");if(this._debug("addTransceiver()"),this.initiator)try{this._pc.addTransceiver(kind,init),this._needsNegotiation()}catch(err){this.destroy(errCode(err,"ERR_ADD_TRANSCEIVER"))}else this.emit("signal",{type:"transceiverRequest",transceiverRequest:{kind,init}})}}addStream(stream){if(!this.destroying){if(this.destroyed)throw errCode(new Error("cannot addStream after peer is destroyed"),"ERR_DESTROYED");this._debug("addStream()"),stream.getTracks().forEach(track=>{this.addTrack(track,stream)})}}addTrack(track,stream){if(this.destroying)return;if(this.destroyed)throw errCode(new Error("cannot addTrack after peer is destroyed"),"ERR_DESTROYED");this._debug("addTrack()");const submap=this._senderMap.get(track)||new Map;let sender=submap.get(stream);if(!sender)sender=this._pc.addTrack(track,stream),submap.set(stream,sender),this._senderMap.set(track,submap),this._needsNegotiation();else if(sender.removed)throw errCode(new Error("Track has been removed. You should enable/disable tracks that you want to re-add."),"ERR_SENDER_REMOVED");else throw errCode(new Error("Track has already been added to that stream."),"ERR_SENDER_ALREADY_ADDED")}replaceTrack(oldTrack,newTrack,stream){if(this.destroying)return;if(this.destroyed)throw errCode(new Error("cannot replaceTrack after peer is destroyed"),"ERR_DESTROYED");this._debug("replaceTrack()");const submap=this._senderMap.get(oldTrack),sender=submap?submap.get(stream):null;if(!sender)throw errCode(new Error("Cannot replace track that was never added."),"ERR_TRACK_NOT_ADDED");newTrack&&this._senderMap.set(newTrack,submap),null==sender.replaceTrack?this.destroy(errCode(new Error("replaceTrack is not supported in this browser"),"ERR_UNSUPPORTED_REPLACETRACK")):sender.replaceTrack(newTrack)}removeTrack(track,stream){if(this.destroying)return;if(this.destroyed)throw errCode(new Error("cannot removeTrack after peer is destroyed"),"ERR_DESTROYED");this._debug("removeSender()");const submap=this._senderMap.get(track),sender=submap?submap.get(stream):null;if(!sender)throw errCode(new Error("Cannot remove track that was never added."),"ERR_TRACK_NOT_ADDED");try{sender.removed=!0,this._pc.removeTrack(sender)}catch(err){"NS_ERROR_UNEXPECTED"===err.name?this._sendersAwaitingStable.push(sender):this.destroy(errCode(err,"ERR_REMOVE_TRACK"))}this._needsNegotiation()}removeStream(stream){if(!this.destroying){if(this.destroyed)throw errCode(new Error("cannot removeStream after peer is destroyed"),"ERR_DESTROYED");this._debug("removeSenders()"),stream.getTracks().forEach(track=>{this.removeTrack(track,stream)})}}_needsNegotiation(){this._debug("_needsNegotiation");this._batchedNegotiation||(this._batchedNegotiation=!0,queueMicrotask(()=>{this._batchedNegotiation=!1,this.initiator||!this._firstNegotiation?(this._debug("starting batched negotiation"),this.negotiate()):this._debug("non-initiator initial negotiation request discarded"),this._firstNegotiation=!1}))}negotiate(){if(!this.destroying){if(this.destroyed)throw errCode(new Error("cannot negotiate after peer is destroyed"),"ERR_DESTROYED");this.initiator?this._isNegotiating?(this._queuedNegotiation=!0,this._debug("already negotiating, queueing")):(this._debug("start negotiation"),setTimeout(()=>{this._createOffer()},0)):this._isNegotiating?(this._queuedNegotiation=!0,this._debug("already negotiating, queueing")):(this._debug("requesting negotiation from initiator"),this.emit("signal",{type:"renegotiate",renegotiate:!0})),this._isNegotiating=!0}}destroy(err){this._destroy(err,()=>{})}_destroy(err,cb){this.destroyed||this.destroying||(this.destroying=!0,this._debug("destroying (error: %s)",err&&(err.message||err)),queueMicrotask(()=>{if(this.destroyed=!0,this.destroying=!1,this._debug("destroy (error: %s)",err&&(err.message||err)),this.readable=this.writable=!1,this._readableState.ended||this.push(null),this._writableState.finished||this.end(),this._connected=!1,this._pcReady=!1,this._channelReady=!1,this._remoteTracks=null,this._remoteStreams=null,this._senderMap=null,clearInterval(this._closingInterval),this._closingInterval=null,clearInterval(this._interval),this._interval=null,this._chunk=null,this._cb=null,this._onFinishBound&&this.removeListener("finish",this._onFinishBound),this._onFinishBound=null,this._channel){try{this._channel.close()}catch(err){}this._channel.onmessage=null,this._channel.onopen=null,this._channel.onclose=null,this._channel.onerror=null}if(this._pc){try{this._pc.close()}catch(err){}this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ontrack=null,this._pc.ondatachannel=null}this._pc=null,this._channel=null,err&&this.emit("error",err),this.emit("close"),cb()}))}_setupData(event){if(!event.channel)return this.destroy(errCode(new Error("Data channel event is missing `channel` property"),"ERR_DATA_CHANNEL"));this._channel=event.channel,this._channel.binaryType="arraybuffer","number"==typeof this._channel.bufferedAmountLowThreshold&&(this._channel.bufferedAmountLowThreshold=MAX_BUFFERED_AMOUNT),this.channelName=this._channel.label,this._channel.onmessage=event=>{this._onChannelMessage(event)},this._channel.onbufferedamountlow=()=>{this._onChannelBufferedAmountLow()},this._channel.onopen=()=>{this._onChannelOpen()},this._channel.onclose=()=>{this._onChannelClose()},this._channel.onerror=event=>{const err=event.error instanceof Error?event.error:new Error(`Datachannel error: ${event.message} ${event.filename}:${event.lineno}:${event.colno}`);this.destroy(errCode(err,"ERR_DATA_CHANNEL"))};let isClosing=!1;this._closingInterval=setInterval(()=>{this._channel&&"closing"===this._channel.readyState?(isClosing&&this._onChannelClose(),isClosing=!0):isClosing=!1},5000)}_read(){}_write(chunk,encoding,cb){if(this.destroyed)return cb(errCode(new Error("cannot write after peer is destroyed"),"ERR_DATA_CHANNEL"));if(this._connected){try{this.send(chunk)}catch(err){return this.destroy(errCode(err,"ERR_DATA_CHANNEL"))}this._channel.bufferedAmount>MAX_BUFFERED_AMOUNT?(this._debug("start backpressure: bufferedAmount %d",this._channel.bufferedAmount),this._cb=cb):cb(null)}else this._debug("write before connect"),this._chunk=chunk,this._cb=cb}_onFinish(){if(!this.destroyed){const destroySoon=()=>{setTimeout(()=>this.destroy(),1e3)};this._connected?destroySoon():this.once("connect",destroySoon)}}_startIceCompleteTimeout(){this.destroyed||this._iceCompleteTimer||(this._debug("started iceComplete timeout"),this._iceCompleteTimer=setTimeout(()=>{this._iceComplete||(this._iceComplete=!0,this._debug("iceComplete timeout completed"),this.emit("iceTimeout"),this.emit("_iceComplete"))},this.iceCompleteTimeout))}_createOffer(){this.destroyed||this._pc.createOffer(this.offerOptions).then(offer=>{if(this.destroyed)return;this.trickle||this.allowHalfTrickle||(offer.sdp=filterTrickle(offer.sdp)),offer.sdp=this.sdpTransform(offer.sdp);const sendOffer=()=>{if(!this.destroyed){const signal=this._pc.localDescription||offer;this._debug("signal"),this.emit("signal",{type:signal.type,sdp:signal.sdp})}};this._pc.setLocalDescription(offer).then(()=>{this._debug("createOffer success");this.destroyed||(this.trickle||this._iceComplete?sendOffer():this.once("_iceComplete",sendOffer))}).catch(err=>{this.destroy(errCode(err,"ERR_SET_LOCAL_DESCRIPTION"))})}).catch(err=>{this.destroy(errCode(err,"ERR_CREATE_OFFER"))})}_requestMissingTransceivers(){this._pc.getTransceivers&&this._pc.getTransceivers().forEach(transceiver=>{transceiver.mid||!transceiver.sender.track||transceiver.requested||(transceiver.requested=!0,this.addTransceiver(transceiver.sender.track.kind))})}_createAnswer(){this.destroyed||this._pc.createAnswer(this.answerOptions).then(answer=>{if(this.destroyed)return;this.trickle||this.allowHalfTrickle||(answer.sdp=filterTrickle(answer.sdp)),answer.sdp=this.sdpTransform(answer.sdp);const sendAnswer=()=>{if(!this.destroyed){const signal=this._pc.localDescription||answer;this._debug("signal"),this.emit("signal",{type:signal.type,sdp:signal.sdp}),this.initiator||this._requestMissingTransceivers()}};this._pc.setLocalDescription(answer).then(()=>{this.destroyed||(this.trickle||this._iceComplete?sendAnswer():this.once("_iceComplete",sendAnswer))}).catch(err=>{this.destroy(errCode(err,"ERR_SET_LOCAL_DESCRIPTION"))})}).catch(err=>{this.destroy(errCode(err,"ERR_CREATE_ANSWER"))})}_onConnectionStateChange(){this.destroyed||"failed"===this._pc.connectionState&&this.destroy(errCode(new Error("Connection failed."),"ERR_CONNECTION_FAILURE"))}_onIceStateChange(){if(this.destroyed)return;const iceConnectionState=this._pc.iceConnectionState,iceGatheringState=this._pc.iceGatheringState;this._debug("iceStateChange (connection: %s) (gathering: %s)",iceConnectionState,iceGatheringState),this.emit("iceStateChange",iceConnectionState,iceGatheringState),("connected"===iceConnectionState||"completed"===iceConnectionState)&&(this._pcReady=!0,this._maybeReady()),"failed"===iceConnectionState&&this.destroy(errCode(new Error("Ice connection failed."),"ERR_ICE_CONNECTION_FAILURE")),"closed"===iceConnectionState&&this.destroy(errCode(new Error("Ice connection closed."),"ERR_ICE_CONNECTION_CLOSED"))}getStats(cb){const flattenValues=report=>("[object Array]"===Object.prototype.toString.call(report.values)&&report.values.forEach(value=>{Object.assign(report,value)}),report);0===this._pc.getStats.length||this._isReactNativeWebrtc?this._pc.getStats().then(res=>{const reports=[];res.forEach(report=>{reports.push(flattenValues(report))}),cb(null,reports)},err=>cb(err)):0{if(this.destroyed)return;const reports=[];res.result().forEach(result=>{const report={};result.names().forEach(name=>{report[name]=result.stat(name)}),report.id=result.id,report.type=result.type,report.timestamp=result.timestamp,reports.push(flattenValues(report))}),cb(null,reports)},err=>cb(err)):cb(null,[])}_maybeReady(){if(this._debug("maybeReady pc %s channel %s",this._pcReady,this._channelReady),this._connected||this._connecting||!this._pcReady||!this._channelReady)return;this._connecting=!0;const findCandidatePair=()=>{this.destroyed||this.getStats((err,items)=>{if(this.destroyed)return;err&&(items=[]);const remoteCandidates={},localCandidates={},candidatePairs={};let foundSelectedCandidatePair=!1;items.forEach(item=>{("remotecandidate"===item.type||"remote-candidate"===item.type)&&(remoteCandidates[item.id]=item),("localcandidate"===item.type||"local-candidate"===item.type)&&(localCandidates[item.id]=item),("candidatepair"===item.type||"candidate-pair"===item.type)&&(candidatePairs[item.id]=item)});const setSelectedCandidatePair=selectedCandidatePair=>{foundSelectedCandidatePair=!0;let local=localCandidates[selectedCandidatePair.localCandidateId];local&&(local.ip||local.address)?(this.localAddress=local.ip||local.address,this.localPort=+local.port):local&&local.ipAddress?(this.localAddress=local.ipAddress,this.localPort=+local.portNumber):"string"==typeof selectedCandidatePair.googLocalAddress&&(local=selectedCandidatePair.googLocalAddress.split(":"),this.localAddress=local[0],this.localPort=+local[1]),this.localAddress&&(this.localFamily=this.localAddress.includes(":")?"IPv6":"IPv4");let remote=remoteCandidates[selectedCandidatePair.remoteCandidateId];remote&&(remote.ip||remote.address)?(this.remoteAddress=remote.ip||remote.address,this.remotePort=+remote.port):remote&&remote.ipAddress?(this.remoteAddress=remote.ipAddress,this.remotePort=+remote.portNumber):"string"==typeof selectedCandidatePair.googRemoteAddress&&(remote=selectedCandidatePair.googRemoteAddress.split(":"),this.remoteAddress=remote[0],this.remotePort=+remote[1]),this.remoteAddress&&(this.remoteFamily=this.remoteAddress.includes(":")?"IPv6":"IPv4"),this._debug("connect local: %s:%s remote: %s:%s",this.localAddress,this.localPort,this.remoteAddress,this.remotePort)};if(items.forEach(item=>{"transport"===item.type&&item.selectedCandidatePairId&&setSelectedCandidatePair(candidatePairs[item.selectedCandidatePairId]),("googCandidatePair"===item.type&&"true"===item.googActiveConnection||("candidatepair"===item.type||"candidate-pair"===item.type)&&item.selected)&&setSelectedCandidatePair(item)}),!foundSelectedCandidatePair&&(!Object.keys(candidatePairs).length||Object.keys(localCandidates).length))return void setTimeout(findCandidatePair,100);if(this._connecting=!1,this._connected=!0,this._chunk){try{this.send(this._chunk)}catch(err){return this.destroy(errCode(err,"ERR_DATA_CHANNEL"))}this._chunk=null,this._debug("sent chunk from \"write before connect\"");const cb=this._cb;this._cb=null,cb(null)}"number"!=typeof this._channel.bufferedAmountLowThreshold&&(this._interval=setInterval(()=>this._onInterval(),150),this._interval.unref&&this._interval.unref()),this._debug("connect"),this.emit("connect")})};findCandidatePair()}_onInterval(){this._cb&&this._channel&&!(this._channel.bufferedAmount>MAX_BUFFERED_AMOUNT)&&this._onChannelBufferedAmountLow()}_onSignalingStateChange(){this.destroyed||("stable"===this._pc.signalingState&&(this._isNegotiating=!1,this._debug("flushing sender queue",this._sendersAwaitingStable),this._sendersAwaitingStable.forEach(sender=>{this._pc.removeTrack(sender),this._queuedNegotiation=!0}),this._sendersAwaitingStable=[],this._queuedNegotiation?(this._debug("flushing negotiation queue"),this._queuedNegotiation=!1,this._needsNegotiation()):(this._debug("negotiated"),this.emit("negotiated"))),this._debug("signalingStateChange %s",this._pc.signalingState),this.emit("signalingStateChange",this._pc.signalingState))}_onIceCandidate(event){this.destroyed||(event.candidate&&this.trickle?this.emit("signal",{type:"candidate",candidate:{candidate:event.candidate.candidate,sdpMLineIndex:event.candidate.sdpMLineIndex,sdpMid:event.candidate.sdpMid}}):!event.candidate&&!this._iceComplete&&(this._iceComplete=!0,this.emit("_iceComplete")),event.candidate&&this._startIceCompleteTimeout())}_onChannelMessage(event){if(this.destroyed)return;let data=event.data;data instanceof ArrayBuffer&&(data=Buffer.from(data)),this.push(data)}_onChannelBufferedAmountLow(){if(!this.destroyed&&this._cb){this._debug("ending backpressure: bufferedAmount %d",this._channel.bufferedAmount);const cb=this._cb;this._cb=null,cb(null)}}_onChannelOpen(){this._connected||this.destroyed||(this._debug("on channel open"),this._channelReady=!0,this._maybeReady())}_onChannelClose(){this.destroyed||(this._debug("on channel close"),this.destroy())}_onTrack(event){this.destroyed||event.streams.forEach(eventStream=>{this._debug("on track"),this.emit("track",event.track,eventStream),this._remoteTracks.push({track:event.track,stream:eventStream});this._remoteStreams.some(remoteStream=>remoteStream.id===eventStream.id)||(this._remoteStreams.push(eventStream),queueMicrotask(()=>{this._debug("on stream"),this.emit("stream",eventStream)}))})}_debug(){const args=[].slice.call(arguments);args[0]="["+this._id+"] "+args[0],debug.apply(null,args)}}Peer.WEBRTC_SUPPORT=!!getBrowserRTC(),Peer.config={iceServers:[{urls:["stun:stun.l.google.com:19302","stun:global.stun.twilio.com:3478"]}],sdpSemantics:"unified-plan"},Peer.channelConfig={},module.exports=Peer},{buffer:69,debug:105,"err-code":136,"get-browser-rtc":141,"queue-microtask":218,randombytes:221,"readable-stream":240}],260:[function(require,module){function sha1sync(buf){return rusha.digest(buf)}function sha1(buf,cb){return subtle?void("string"==typeof buf&&(buf=uint8array(buf)),subtle.digest({name:"sha-1"},buf).then(function(result){cb(hex(new Uint8Array(result)))},function(){cb(sha1sync(buf))})):void("undefined"==typeof window?queueMicrotask(()=>cb(sha1sync(buf))):rushaWorkerSha1(buf,function(err,hash){return err?void cb(sha1sync(buf)):void cb(hash)}))}function uint8array(s){const l=s.length,array=new Uint8Array(l);for(let i=0;i>>4).toString(16)),chars.push((15&bite).toString(16))}return chars.join("")}const Rusha=require("rusha"),rushaWorkerSha1=require("./rusha-worker-sha1"),rusha=new Rusha,scope="undefined"==typeof window?self:window,crypto=scope.crypto||scope.msCrypto||{};let subtle=crypto.subtle||crypto.webkitSubtle;try{subtle.digest({name:"sha-1"},new Uint8Array).catch(function(){subtle=!1})}catch(err){subtle=!1}module.exports=sha1,module.exports.sync=sha1sync},{"./rusha-worker-sha1":261,rusha:246}],261:[function(require,module){function init(){worker=Rusha.createWorker(),nextTaskId=1,cbs={},worker.onmessage=function(e){const taskId=e.data.id,cb=cbs[taskId];delete cbs[taskId],null==e.data.error?cb(null,e.data.hash):cb(new Error("Rusha worker error: "+e.data.error))}}function sha1(buf,cb){worker||init(),cbs[nextTaskId]=cb,worker.postMessage({id:nextTaskId,data:buf}),nextTaskId+=1}const Rusha=require("rusha");let worker,nextTaskId,cbs;module.exports=sha1},{rusha:246}],262:[function(require,module){(function(Buffer){(function(){/*! simple-websocket. MIT License. Feross Aboukhadijeh */const debug=require("debug")("simple-websocket"),randombytes=require("randombytes"),stream=require("readable-stream"),queueMicrotask=require("queue-microtask"),ws=require("ws"),_WebSocket="function"==typeof ws?ws:WebSocket,MAX_BUFFERED_AMOUNT=65536;class Socket extends stream.Duplex{constructor(opts={}){if("string"==typeof opts&&(opts={url:opts}),opts=Object.assign({allowHalfOpen:!1},opts),super(opts),null==opts.url&&null==opts.socket)throw new Error("Missing required `url` or `socket` option");if(null!=opts.url&&null!=opts.socket)throw new Error("Must specify either `url` or `socket` option, not both");if(this._id=randombytes(4).toString("hex").slice(0,7),this._debug("new websocket: %o",opts),this.connected=!1,this.destroyed=!1,this._chunk=null,this._cb=null,this._interval=null,opts.socket)this.url=opts.socket.url,this._ws=opts.socket,this.connected=opts.socket.readyState===_WebSocket.OPEN;else{this.url=opts.url;try{this._ws="function"==typeof ws?new _WebSocket(opts.url,null,{...opts,encoding:void 0}):new _WebSocket(opts.url)}catch(err){return void queueMicrotask(()=>this.destroy(err))}}this._ws.binaryType="arraybuffer",opts.socket&&this.connected?queueMicrotask(()=>this._handleOpen()):this._ws.onopen=()=>this._handleOpen(),this._ws.onmessage=event=>this._handleMessage(event),this._ws.onclose=()=>this._handleClose(),this._ws.onerror=err=>this._handleError(err),this._handleFinishBound=()=>this._handleFinish(),this.once("finish",this._handleFinishBound)}send(chunk){this._ws.send(chunk)}destroy(err){this._destroy(err,()=>{})}_destroy(err,cb){if(!this.destroyed){if(this._debug("destroy (error: %s)",err&&(err.message||err)),this.readable=this.writable=!1,this._readableState.ended||this.push(null),this._writableState.finished||this.end(),this.connected=!1,this.destroyed=!0,clearInterval(this._interval),this._interval=null,this._chunk=null,this._cb=null,this._handleFinishBound&&this.removeListener("finish",this._handleFinishBound),this._handleFinishBound=null,this._ws){const ws=this._ws,onClose=()=>{ws.onclose=null};if(ws.readyState===_WebSocket.CLOSED)onClose();else try{ws.onclose=onClose,ws.close()}catch(err){onClose()}ws.onopen=null,ws.onmessage=null,ws.onerror=()=>{}}this._ws=null,err&&this.emit("error",err),this.emit("close"),cb()}}_read(){}_write(chunk,encoding,cb){if(this.destroyed)return cb(new Error("cannot write after socket is destroyed"));if(this.connected){try{this.send(chunk)}catch(err){return this.destroy(err)}"function"!=typeof ws&&this._ws.bufferedAmount>MAX_BUFFERED_AMOUNT?(this._debug("start backpressure: bufferedAmount %d",this._ws.bufferedAmount),this._cb=cb):cb(null)}else this._debug("write before connect"),this._chunk=chunk,this._cb=cb}_handleOpen(){if(!(this.connected||this.destroyed)){if(this.connected=!0,this._chunk){try{this.send(this._chunk)}catch(err){return this.destroy(err)}this._chunk=null,this._debug("sent chunk from \"write before connect\"");const cb=this._cb;this._cb=null,cb(null)}"function"!=typeof ws&&(this._interval=setInterval(()=>this._onInterval(),150),this._interval.unref&&this._interval.unref()),this._debug("connect"),this.emit("connect")}}_handleMessage(event){if(this.destroyed)return;let data=event.data;data instanceof ArrayBuffer&&(data=Buffer.from(data)),this.push(data)}_handleClose(){this.destroyed||(this._debug("on close"),this.destroy())}_handleError(){this.destroy(new Error(`Error connecting to ${this.url}`))}_handleFinish(){if(!this.destroyed){const destroySoon=()=>{setTimeout(()=>this.destroy(),1e3)};this.connected?destroySoon():this.once("connect",destroySoon)}}_onInterval(){if(this._cb&&this._ws&&!(this._ws.bufferedAmount>MAX_BUFFERED_AMOUNT)){this._debug("ending backpressure: bufferedAmount %d",this._ws.bufferedAmount);const cb=this._cb;this._cb=null,cb(null)}}_debug(){const args=[].slice.call(arguments);args[0]="["+this._id+"] "+args[0],debug.apply(null,args)}}Socket.WEBSOCKET_SUPPORT=!!_WebSocket,module.exports=Socket}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69,debug:105,"queue-microtask":218,randombytes:221,"readable-stream":240,ws:41}],263:[function(require,module){const Throttle=require("./lib/throttle"),ThrottleGroup=require("./lib/throttle-group");module.exports={Throttle,ThrottleGroup}},{"./lib/throttle":265,"./lib/throttle-group":264}],264:[function(require,module){var _NumberisInteger=Number.isInteger;const{TokenBucket}=require("limiter"),Throttle=require("./throttle");module.exports=class{constructor(opts={}){if("object"!=typeof opts)throw new Error("Options must be an object");this.throttles=[],this.setEnabled(opts.enabled),this.setRate(opts.rate,opts.chunksize)}getEnabled(){return this._enabled}getRate(){return this.bucket.tokensPerInterval}getChunksize(){return this.chunksize}setEnabled(val=!0){if("boolean"!=typeof val)throw new Error("Enabled must be a boolean");this._enabled=val;for(const throttle of this.throttles)throttle.setEnabled(val)}setRate(rate,chunksize=null){if(!_NumberisInteger(rate)||0>rate)throw new Error("Rate must be an integer bigger than zero");if(rate=parseInt(rate),chunksize&&("number"!=typeof chunksize||0>=chunksize))throw new Error("Chunksize must be bigger than zero");if(chunksize=chunksize||_Mathmax(parseInt(rate/10),1),chunksize=parseInt(chunksize),0rate)throw new Error("Chunk size must be smaller than rate");this.bucket||(this.bucket=new TokenBucket(rate,rate,"second",null)),this.bucket.bucketSize=rate,this.bucket.tokensPerInterval=rate,this.chunksize=chunksize}setChunksize(chunksize){if(!_NumberisInteger(chunksize)||0>=chunksize)throw new Error("Chunk size must be an integer bigger than zero");const rate=this.getRate();if(chunksize=parseInt(chunksize),0rate)throw new Error("Chunk size must be smaller than rate");this.chunksize=chunksize}throttle(opts={}){if("object"!=typeof opts)throw new Error("Options must be an object");const newThrottle=new Throttle({...opts,group:this});return newThrottle}destroy(){for(const throttle of this.throttles)throttle.destroy();this.throttles=[]}_addThrottle(throttle){if(!(throttle instanceof Throttle))throw new Error("Throttle must be an instance of Throttle");this.throttles.push(throttle)}_removeThrottle(throttle){const index=this.throttles.indexOf(throttle);-1{function isDone(err){if(self._emitter.removeListener("disabled",isDone),self._emitter.removeListener("destroyed",isDone),!done)return done=!0,err?reject(err):void resolve()}let done=!1;const self=this;this._emitter.once("disabled",isDone),this._emitter.once("destroyed",isDone),this._group.bucket.removeTokens(amount,isDone)})}_areBothEnabled(){return this._enabled&&this._group.getEnabled()}async _processChunk(chunk,done){if(!this._areBothEnabled())return done(null,chunk);let pos=0,chunksize=this._group.getChunksize(),slice=chunk.slice(pos,pos+chunksize);for(;0setTimeout(resolve,time))}}},{}],267:[function(require,module){var tick=1,maxTick=65535,resolution=4,inc=function(){tick=tick+1&maxTick},timer;module.exports=function(seconds){timer||(timer=setInterval(inc,0|1e3/resolution),timer.unref&&timer.unref());var size=resolution*(seconds||5),buffer=[0],pointer=1,last=tick-1&maxTick;return function(delta){var dist=tick-last&maxTick;for(dist>size&&(dist=size),last=tick;dist--;)pointer===size&&(pointer=0),buffer[pointer]=buffer[0===pointer?size-1:pointer-1],pointer++;delta&&(buffer[pointer-1]+=delta);var top=buffer[pointer-1],btm=buffer.lengthself._pos){var newData=response.substr(self._pos);if("x-user-defined"===self._charset){for(var buffer=Buffer.alloc(newData.length),i=0;iself._pos&&(self.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos)))),self._pos=reader.result.byteLength)},reader.onload=function(){resetTimers(!0),self.push(null)},reader.readAsArrayBuffer(response);}self._xhr.readyState===rStates.DONE&&"ms-stream"!==self._mode&&(resetTimers(!0),self.push(null))}}).call(this)}).call(this,require("_process"),"undefined"==typeof global?"undefined"==typeof self?"undefined"==typeof window?{}:window:self:global,require("buffer").Buffer)},{"./capability":269,_process:205,buffer:69,inherits:159,"readable-stream":240}],272:[function(require,module){module.exports=async function(stream,mimeType){const blob=await getBlob(stream,mimeType),url=URL.createObjectURL(blob);return url};const getBlob=require("stream-to-blob")},{"stream-to-blob":273}],273:[function(require,module){/*! stream-to-blob. MIT License. Feross Aboukhadijeh */module.exports=function(stream,mimeType){if(null!=mimeType&&"string"!=typeof mimeType)throw new Error("Invalid mimetype, expected string.");return new Promise((resolve,reject)=>{const chunks=[];stream.on("data",chunk=>chunks.push(chunk)).once("end",()=>{const blob=null==mimeType?new Blob(chunks):new Blob(chunks,{type:mimeType});resolve(blob)}).once("error",reject)})}},{}],274:[function(require,module){(function(Buffer){(function(){/*! stream-with-known-length-to-buffer. MIT License. Feross Aboukhadijeh */var once=require("once");module.exports=function(stream,length,cb){cb=once(cb);var buf=Buffer.alloc(length),offset=0;stream.on("data",function(chunk){chunk.copy(buf,offset),offset+=chunk.length}).on("end",function(){cb(null,buf)}).on("error",cb)}}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69,once:191}],275:[function(require,module){function afterDrain(){this.stream._duplexState|=READ_PIPE_DRAINED,0==(this.stream._duplexState&READ_ACTIVE_AND_SYNC)&&this.updateNextTick()}function afterFinal(err){const stream=this.stream;err&&stream.destroy(err),0==(stream._duplexState&DESTROY_STATUS)&&(stream._duplexState|=WRITE_DONE,stream.emit("finish")),(stream._duplexState&AUTO_DESTROY)===DONE&&(stream._duplexState|=DESTROYING),stream._duplexState&=WRITE_NOT_ACTIVE,this.update()}function afterDestroy(err){const stream=this.stream;err||this.error===STREAM_DESTROYED||(err=this.error),err&&stream.emit("error",err),stream._duplexState|=DESTROYED,stream.emit("close");const rs=stream._readableState,ws=stream._writableState;null!==rs&&null!==rs.pipeline&&rs.pipeline.done(stream,err),null!==ws&&null!==ws.pipeline&&ws.pipeline.done(stream,err)}function afterWrite(err){const stream=this.stream;err&&stream.destroy(err),stream._duplexState&=WRITE_NOT_ACTIVE,(stream._duplexState&WRITE_DRAIN_STATUS)===WRITE_UNDRAINED&&(stream._duplexState&=WRITE_DRAINED,(stream._duplexState&WRITE_EMIT_DRAIN)===WRITE_EMIT_DRAIN&&stream.emit("drain")),0==(stream._duplexState&WRITE_SYNC)&&this.update()}function afterRead(err){err&&this.stream.destroy(err),this.stream._duplexState&=READ_NOT_ACTIVE,0==(this.stream._duplexState&READ_SYNC)&&this.update()}function updateReadNT(){this.stream._duplexState&=READ_NOT_NEXT_TICK,this.update()}function updateWriteNT(){this.stream._duplexState&=WRITE_NOT_NEXT_TICK,this.update()}function afterOpen(err){const stream=this.stream;err&&stream.destroy(err),0==(stream._duplexState&DESTROYING)&&(0==(stream._duplexState&READ_PRIMARY_STATUS)&&(stream._duplexState|=READ_PRIMARY),0==(stream._duplexState&WRITE_PRIMARY_STATUS)&&(stream._duplexState|=WRITE_PRIMARY),stream.emit("open")),stream._duplexState&=NOT_ACTIVE,null!==stream._writableState&&stream._writableState.update(),null!==stream._readableState&&stream._readableState.update()}function afterTransform(err,data){data!==void 0&&null!==data&&this.push(data),this._writableState.afterWrite(err)}function transformAfterFlush(err,data){const cb=this._transformState.afterFinal;return err?cb(err):void(null!==data&&data!==void 0&&this.push(data),this.push(null),cb(null))}function pipeline(stream,...streams){function errorHandle(s,rd,wr,onerror){s.on("error",onerror),s.on("close",function(){return rd&&s._readableState&&!s._readableState.ended?onerror(PREMATURE_CLOSE):wr&&s._writableState&&!s._writableState.ended?onerror(PREMATURE_CLOSE):void 0})}function onerror(err){if(err&&!error){error=err;for(const s of all)s.destroy(err)}}const all=Array.isArray(stream)?[...stream,...streams]:[stream,...streams],done=all.length&&"function"==typeof all[all.length-1]?all.pop():null;if(2>all.length)throw new Error("Pipeline requires at least 2 streams");let src=all[0],dest=null,error=null;for(let i=1;i{fin=!0}),dest.on("error",err=>{error=error||err}),dest.on("close",()=>done(error||(fin?null:PREMATURE_CLOSE)))}return dest}function isStream(stream){return!!stream._readableState||!!stream._writableState}function isStreamx(stream){return"number"==typeof stream._duplexState&&isStream(stream)}function isReadStreamx(stream){return isStreamx(stream)&&stream.readable}function isTypedArray(data){return"object"==typeof data&&null!==data&&"number"==typeof data.byteLength}function defaultByteLength(data){return isTypedArray(data)?data.byteLength:1024}function noop(){}function abort(){this.destroy(new Error("Stream aborted."))}const{EventEmitter}=require("events"),STREAM_DESTROYED=new Error("Stream was destroyed"),PREMATURE_CLOSE=new Error("Premature close"),queueTick=require("queue-tick"),FIFO=require("fast-fifo"),MAX=33554431,OPENING=1,DESTROYING=2,DESTROYED=4,NOT_OPENING=MAX^OPENING,READ_ACTIVE=8,READ_PRIMARY=16,READ_SYNC=32,READ_QUEUED=64,READ_RESUMED=128,READ_PIPE_DRAINED=256,READ_ENDING=512,READ_EMIT_DATA=1024,READ_EMIT_READABLE=2048,READ_EMITTED_READABLE=4096,READ_DONE=8192,READ_NEXT_TICK=16392,READ_NEEDS_PUSH=32768,READ_NOT_ACTIVE=MAX^READ_ACTIVE,READ_PIPE_NOT_DRAINED=MAX^(READ_RESUMED|READ_PIPE_DRAINED),READ_NOT_NEXT_TICK=MAX^READ_NEXT_TICK,WRITE_ACTIVE=65536,WRITE_PRIMARY=131072,WRITE_SYNC=262144,WRITE_QUEUED=524288,WRITE_UNDRAINED=1048576,WRITE_DONE=2097152,WRITE_EMIT_DRAIN=4194304,WRITE_NEXT_TICK=8454144,WRITE_FINISHING=16777216,WRITE_NOT_ACTIVE=MAX^WRITE_ACTIVE,WRITE_NON_PRIMARY=MAX^WRITE_PRIMARY,WRITE_DRAINED=MAX^WRITE_UNDRAINED,WRITE_NOT_NEXT_TICK=MAX^WRITE_NEXT_TICK,ACTIVE=READ_ACTIVE|WRITE_ACTIVE,NOT_ACTIVE=MAX^ACTIVE,DONE=READ_DONE|WRITE_DONE,DESTROY_STATUS=DESTROYING|DESTROYED,OPEN_STATUS=DESTROY_STATUS|OPENING,AUTO_DESTROY=DESTROY_STATUS|DONE,TICKING=(WRITE_NEXT_TICK|READ_NEXT_TICK)&NOT_ACTIVE,ACTIVE_OR_TICKING=ACTIVE|TICKING,IS_OPENING=OPEN_STATUS|TICKING,READ_PRIMARY_STATUS=OPEN_STATUS|READ_ENDING|READ_DONE,READ_STATUS=OPEN_STATUS|READ_DONE|READ_QUEUED,READ_ACTIVE_AND_SYNC=READ_ACTIVE|READ_SYNC,WRITE_PRIMARY_STATUS=OPEN_STATUS|WRITE_FINISHING|WRITE_DONE,WRITE_QUEUED_AND_ACTIVE=WRITE_QUEUED|WRITE_ACTIVE,WRITE_DRAIN_STATUS=WRITE_QUEUED|WRITE_UNDRAINED|OPEN_STATUS|WRITE_ACTIVE,WRITE_STATUS=OPEN_STATUS|WRITE_ACTIVE|WRITE_QUEUED,asyncIterator=Symbol.asyncIterator||Symbol("asyncIterator");class WritableState{constructor(stream,{highWaterMark=16384,map=null,mapWritable,byteLength,byteLengthWritable}={}){this.stream=stream,this.queue=new FIFO,this.highWaterMark=highWaterMark,this.buffered=0,this.error=null,this.pipeline=null,this.byteLength=byteLengthWritable||byteLength||defaultByteLength,this.map=mapWritable||map,this.afterWrite=afterWrite.bind(this),this.afterUpdateNextTick=updateWriteNT.bind(this)}get ended(){return 0!=(this.stream._duplexState&WRITE_DONE)}push(data){return(null!==this.map&&(data=this.map(data)),this.buffered+=this.byteLength(data),this.queue.push(data),this.buffered=rs._readableState.highWaterMark}static isPaused(rs){return 0==(rs._duplexState&READ_RESUMED)}[asyncIterator](){function onreadable(){null!==promiseResolve&&ondata(stream.read())}function onclose(){null!==promiseResolve&&ondata(null)}function ondata(data){null===promiseReject||(error?promiseReject(error):null===data&&0==(stream._duplexState&READ_DONE)?promiseReject(STREAM_DESTROYED):promiseResolve({value:data,done:null==data}),promiseReject=promiseResolve=null)}function destroy(err){return stream.destroy(err),new Promise((resolve,reject)=>stream._duplexState&DESTROYED?resolve({value:void 0,done:!0}):void stream.once("close",function(){err?reject(err):resolve({value:void 0,done:!0})}))}const stream=this;let error=null,promiseResolve=null,promiseReject=null;return this.on("error",err=>{error=err}),this.on("readable",onreadable),this.on("close",onclose),{[asyncIterator](){return this},next(){return new Promise(function(resolve,reject){promiseResolve=resolve,promiseReject=reject;const data=stream.read();null===data?0!=(stream._duplexState&DESTROYED)&&ondata(null):ondata(data)})},return(){return destroy(null)},throw(err){return destroy(err)}}}}class Duplex extends Readable{constructor(opts){super(opts),this._duplexState=OPENING,this._writableState=new WritableState(this,opts),opts&&(opts.writev&&(this._writev=opts.writev),opts.write&&(this._write=opts.write),opts.final&&(this._final=opts.final))}_writev(batch,cb){cb(null)}_write(data,cb){this._writableState.autoBatch(data,cb)}_final(cb){cb(null)}write(data){return this._writableState.updateNextTick(),this._writableState.push(data)}end(data){return this._writableState.updateNextTick(),this._writableState.end(data),this}}class Transform extends Duplex{constructor(opts){super(opts),this._transformState=new TransformState(this),opts&&(opts.transform&&(this._transform=opts.transform),opts.flush&&(this._flush=opts.flush))}_write(data){this._readableState.buffered>=this._readableState.highWaterMark?this._transformState.data=data:this._transform(data,this._transformState.afterTransform)}_read(cb){if(null!==this._transformState.data){const data=this._transformState.data;this._transformState.data=null,cb(null),this._transform(data,this._transformState.afterTransform)}else cb(null)}_transform(data,cb){cb(null,data)}_flush(cb){cb(null)}_final(cb){this._transformState.afterFinal=cb,this._flush(transformAfterFlush.bind(this))}}module.exports={pipeline,pipelinePromise:function(...streams){return new Promise((resolve,reject)=>pipeline(...streams,err=>err?reject(err):void resolve()))},isStream,isStreamx,Stream,Writable:class extends Stream{constructor(opts){super(opts),this._duplexState|=OPENING|READ_DONE,this._writableState=new WritableState(this,opts),opts&&(opts.writev&&(this._writev=opts.writev),opts.write&&(this._write=opts.write),opts.final&&(this._final=opts.final))}_writev(batch,cb){cb(null)}_write(data,cb){this._writableState.autoBatch(data,cb)}_final(cb){cb(null)}static isBackpressured(ws){return 0!=(ws._duplexState&(WRITE_UNDRAINED|DESTROY_STATUS|WRITE_FINISHING|WRITE_DONE))}write(data){return this._writableState.updateNextTick(),this._writableState.push(data)}end(data){return this._writableState.updateNextTick(),this._writableState.end(data),this}},Readable,Duplex,Transform,PassThrough:class extends Transform{}}},{events:70,"fast-fifo":139,"queue-tick":219}],276:[function(require,module,exports){"use strict";function _normalizeEncoding(enc){if(!enc)return"utf8";for(var retried;;)switch(enc){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return enc;default:if(retried)return;enc=(""+enc).toLowerCase(),retried=!0;}}function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if("string"!=typeof nenc&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw new Error("Unknown encoding: "+enc);return nenc||enc}function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case"utf16le":this.text=utf16Text,this.end=utf16End,nb=4;break;case"utf8":this.fillLast=utf8FillLast,nb=4;break;case"base64":this.text=base64Text,this.end=base64End,nb=3;break;default:return this.write=simpleWrite,void(this.end=simpleEnd);}this.lastNeed=0,this.lastTotal=0,this.lastChar=Buffer.allocUnsafe(nb)}function utf8CheckByte(byte){if(127>=byte)return 0;return 6==byte>>5?2:14==byte>>4?3:30==byte>>3?4:2==byte>>6?-1:-2}function utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j=c)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=buf[buf.length-1],buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;return 0==n?buf.toString("base64",i):(this.lastNeed=3-n,this.lastTotal=3,1==n?this.lastChar[0]=buf[buf.length-1]:(this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1]),buf.toString("base64",i,buf.length-n))}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";return this.lastNeed?r+this.lastChar.toString("base64",0,3-this.lastNeed):r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}var Buffer=require("safe-buffer").Buffer,isEncoding=Buffer.isEncoding||function(encoding){switch(encoding=""+encoding,encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1;}};exports.StringDecoder=StringDecoder,StringDecoder.prototype.write=function(buf){if(0===buf.length)return"";var r,i;if(this.lastNeed){if(r=this.fillLast(buf),void 0===r)return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i>shiftIndex,shiftIndex=(shiftIndex+5)%8,digit=digit<>8-shiftIndex,i++):(digit=31¤t>>8-(shiftIndex+5),shiftIndex=(shiftIndex+5)%8,0===shiftIndex&&i++),encoded[j]="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567".charCodeAt(digit),j++}for(i=j;i=shiftIndex?(shiftIndex=(shiftIndex+5)%8,0===shiftIndex?(plainChar|=plainDigit,decoded[plainPos]=plainChar,plainPos++,plainChar=0):plainChar|=255&plainDigit<<8-shiftIndex):(shiftIndex=(shiftIndex+5)%8,plainChar|=255&plainDigit>>>shiftIndex,decoded[plainPos]=plainChar,plainPos++,plainChar=255&plainDigit<<8-shiftIndex);else throw new Error("Invalid input - it is not base32 encoded string")}return decoded.slice(0,plainPos)}}).call(this)}).call(this,require("buffer").Buffer)},{buffer:69}],279:[function(require,module){var Buffer=require("buffer").Buffer;module.exports=function(buf){if(buf instanceof Uint8Array){if(0===buf.byteOffset&&buf.byteLength===buf.buffer.byteLength)return buf.buffer;if("function"==typeof buf.buffer.slice)return buf.buffer.slice(buf.byteOffset,buf.byteOffset+buf.byteLength)}if(Buffer.isBuffer(buf)){for(var arrayCopy=new Uint8Array(buf.length),len=buf.length,i=0;i */const debug=require("debug")("torrent-discovery"),DHT=require("bittorrent-dht/client"),EventEmitter=require("events").EventEmitter,parallel=require("run-parallel"),Tracker=require("bittorrent-tracker/client"),LSD=require("bittorrent-lsd");module.exports=class extends EventEmitter{constructor(opts){if(super(),!opts.peerId)throw new Error("Option `peerId` is required");if(!opts.infoHash)throw new Error("Option `infoHash` is required");if(!process.browser&&!opts.port)throw new Error("Option `port` is required");this.peerId="string"==typeof opts.peerId?opts.peerId:opts.peerId.toString("hex"),this.infoHash="string"==typeof opts.infoHash?opts.infoHash.toLowerCase():opts.infoHash.toString("hex"),this._port=opts.port,this._userAgent=opts.userAgent,this.destroyed=!1,this._announce=opts.announce||[],this._intervalMs=opts.intervalMs||900000,this._trackerOpts=null,this._dhtAnnouncing=!1,this._dhtTimeout=!1,this._internalDHT=!1,this._onWarning=err=>{this.emit("warning",err)},this._onError=err=>{this.emit("error",err)},this._onDHTPeer=(peer,infoHash)=>{infoHash.toString("hex")!==this.infoHash||this.emit("peer",`${peer.host}:${peer.port}`,"dht")},this._onTrackerPeer=peer=>{this.emit("peer",peer,"tracker")},this._onTrackerAnnounce=()=>{this.emit("trackerAnnounce")},this._onLSDPeer=peer=>{this.emit("peer",peer,"lsd")};const createDHT=(port,opts)=>{const dht=new DHT(opts);return dht.on("warning",this._onWarning),dht.on("error",this._onError),dht.listen(port),this._internalDHT=!0,dht};!1===opts.tracker?this.tracker=null:opts.tracker&&"object"==typeof opts.tracker?(this._trackerOpts=Object.assign({},opts.tracker),this.tracker=this._createTracker()):this.tracker=this._createTracker(),this.dht=!1===opts.dht||"function"!=typeof DHT?null:opts.dht&&"function"==typeof opts.dht.addNode?opts.dht:opts.dht&&"object"==typeof opts.dht?createDHT(opts.dhtPort,opts.dht):createDHT(opts.dhtPort),this.dht&&(this.dht.on("peer",this._onDHTPeer),this._dhtAnnounce()),this.lsd=!1===opts.lsd||"function"!=typeof LSD?null:this._createLSD()}updatePort(port){port===this._port||(this._port=port,this.dht&&this._dhtAnnounce(),this.tracker&&(this.tracker.stop(),this.tracker.destroy(()=>{this.tracker=this._createTracker()})))}complete(opts){this.tracker&&this.tracker.complete(opts)}destroy(cb){if(!this.destroyed){this.destroyed=!0,clearTimeout(this._dhtTimeout);const tasks=[];this.tracker&&(this.tracker.stop(),this.tracker.removeListener("warning",this._onWarning),this.tracker.removeListener("error",this._onError),this.tracker.removeListener("peer",this._onTrackerPeer),this.tracker.removeListener("update",this._onTrackerAnnounce),tasks.push(cb=>{this.tracker.destroy(cb)})),this.dht&&this.dht.removeListener("peer",this._onDHTPeer),this._internalDHT&&(this.dht.removeListener("warning",this._onWarning),this.dht.removeListener("error",this._onError),tasks.push(cb=>{this.dht.destroy(cb)})),this.lsd&&(this.lsd.removeListener("warning",this._onWarning),this.lsd.removeListener("error",this._onError),this.lsd.removeListener("peer",this._onLSDPeer),tasks.push(cb=>{this.lsd.destroy(cb)})),parallel(tasks,cb),this.dht=null,this.tracker=null,this.lsd=null,this._announce=null}}_createTracker(){const opts=Object.assign({},this._trackerOpts,{infoHash:this.infoHash,announce:this._announce,peerId:this.peerId,port:this._port,userAgent:this._userAgent}),tracker=new Tracker(opts);return tracker.on("warning",this._onWarning),tracker.on("error",this._onError),tracker.on("peer",this._onTrackerPeer),tracker.on("update",this._onTrackerAnnounce),tracker.setInterval(this._intervalMs),tracker.start(),tracker}_dhtAnnounce(){this._dhtAnnouncing||(debug("dht announce"),this._dhtAnnouncing=!0,clearTimeout(this._dhtTimeout),this.dht.announce(this.infoHash,this._port,err=>{this._dhtAnnouncing=!1,debug("dht announce complete"),err&&this.emit("warning",err),this.emit("dhtAnnounce"),this.destroyed||(this._dhtTimeout=setTimeout(()=>{this._dhtAnnounce()},this._intervalMs+_Mathfloor(Math.random()*this._intervalMs/5)),this._dhtTimeout.unref&&this._dhtTimeout.unref())}))}_createLSD(){const opts=Object.assign({},{infoHash:this.infoHash,peerId:this.peerId,port:this._port}),lsd=new LSD(opts);return lsd.on("warning",this._onWarning),lsd.on("error",this._onError),lsd.on("peer",this._onLSDPeer),lsd.start(),lsd}}}).call(this)}).call(this,require("_process"))},{_process:205,"bittorrent-dht/client":41,"bittorrent-lsd":41,"bittorrent-tracker/client":33,debug:105,events:70,"run-parallel":245}],281:[function(require,module){(function(Buffer){(function(){/*! torrent-piece. MIT License. WebTorrent LLC */const BLOCK_LENGTH=16384;class Piece{constructor(length){this.length=length,this.missing=length,this.sources=null,this._chunks=_Mathceil(length/BLOCK_LENGTH),this._remainder=length%BLOCK_LENGTH||BLOCK_LENGTH,this._buffered=0,this._buffer=null,this._cancellations=null,this._reservations=0,this._flushed=!1}chunkLength(i){return i===this._chunks-1?this._remainder:BLOCK_LENGTH}chunkLengthRemaining(i){return this.length-i*BLOCK_LENGTH}chunkOffset(i){return i*BLOCK_LENGTH}reserve(){return this.init()?this._cancellations.length?this._cancellations.pop():this._reservations=arr.length||0>i)){var last=arr.pop();if(i","\"","`"," ","\r","\n","\t"]),autoEscape=["'"].concat(unwise),nonHostChars=["%","/","?",";","#"].concat(autoEscape),hostEndingChars=["/","?","#"],hostnamePartPattern=/^[+a-z0-9A-Z_-]{0,63}$/,unsafeProtocol={javascript:!0,"javascript:":!0},hostlessProtocol={javascript:!0,"javascript:":!0},slashedProtocol={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},querystring=require("querystring");Url.prototype.parse=function(url,parseQueryString,slashesDenoteHost){if(!util.isString(url))throw new TypeError("Parameter 'url' must be a string, not "+typeof url);var queryIndex=url.indexOf("?"),splitter=-1!==queryIndex&&queryIndexrelPath.length&&relPath.unshift(""),result.pathname=relPath.join("/")}else result.pathname=relative.pathname;if(result.search=relative.search,result.query=relative.query,result.host=relative.host||"",result.auth=relative.auth,result.hostname=relative.hostname||relative.host,result.port=relative.port,result.pathname||result.search){var p=result.pathname||"",s=result.search||"";result.path=p+s}return result.slashes=result.slashes||relative.slashes,result.href=result.format(),result}var isSourceAbs=result.pathname&&"/"===result.pathname.charAt(0),isRelAbs=relative.host||relative.pathname&&"/"===relative.pathname.charAt(0),mustEndAbs=isRelAbs||isSourceAbs||result.host&&relative.pathname,removeAllDots=mustEndAbs,srcPath=result.pathname&&result.pathname.split("/")||[],relPath=relative.pathname&&relative.pathname.split("/")||[],psychotic=result.protocol&&!slashedProtocol[result.protocol];if(psychotic&&(result.hostname="",result.port=null,result.host&&(""===srcPath[0]?srcPath[0]=result.host:srcPath.unshift(result.host)),result.host="",relative.protocol&&(relative.hostname=null,relative.port=null,relative.host&&(""===relPath[0]?relPath[0]=relative.host:relPath.unshift(relative.host)),relative.host=null),mustEndAbs=mustEndAbs&&(""===relPath[0]||""===srcPath[0])),isRelAbs)result.host=relative.host||""===relative.host?relative.host:result.host,result.hostname=relative.hostname||""===relative.hostname?relative.hostname:result.hostname,result.search=relative.search,result.query=relative.query,srcPath=relPath;else if(relPath.length)srcPath||(srcPath=[]),srcPath.pop(),srcPath=srcPath.concat(relPath),result.search=relative.search,result.query=relative.query;else if(!util.isNullOrUndefined(relative.search)){if(psychotic){result.hostname=result.host=srcPath.shift();var authInHost=!!(result.host&&0 */const{EventEmitter}=require("events"),bencode=require("bencode"),BitField=require("bitfield").default,debug=require("debug")("ut_metadata"),sha1=require("simple-sha1"),BITFIELD_GROW=1E3,PIECE_LENGTH=16384;module.exports=metadata=>{class utMetadata extends EventEmitter{constructor(wire){super(),this._wire=wire,this._fetching=!1,this._metadataComplete=!1,this._metadataSize=null,this._remainingRejects=null,this._bitfield=new BitField(0,{grow:BITFIELD_GROW}),Buffer.isBuffer(metadata)&&this.setMetadata(metadata)}onHandshake(infoHash){this._infoHash=infoHash}onExtendedHandshake(handshake){return handshake.m&&handshake.m.ut_metadata?handshake.metadata_size?"number"!=typeof handshake.metadata_size||1E7=handshake.metadata_size?this.emit("warning",new Error("Peer gave invalid metadata size")):void(this._metadataSize=handshake.metadata_size,this._numPieces=_Mathceil(this._metadataSize/PIECE_LENGTH),this._remainingRejects=2*this._numPieces,this._requestPieces()):this.emit("warning",new Error("Peer does not have metadata")):this.emit("warning",new Error("Peer does not support ut_metadata"))}onMessage(buf){let dict,trailer;try{const str=buf.toString(),trailerIndex=str.indexOf("ee")+2;dict=bencode.decode(str.substring(0,trailerIndex)),trailer=buf.slice(trailerIndex)}catch(err){return}switch(dict.msg_type){case 0:this._onRequest(dict.piece);break;case 1:this._onData(dict.piece,trailer,dict.total_size);break;case 2:this._onReject(dict.piece);}}fetch(){this._metadataComplete||(this._fetching=!0,this._metadataSize&&this._requestPieces())}cancel(){this._fetching=!1}setMetadata(metadata){if(this._metadataComplete)return!0;debug("set metadata");try{const info=bencode.decode(metadata).info;info&&(metadata=bencode.encode(info))}catch(err){}return!(this._infoHash&&this._infoHash!==sha1.sync(metadata))&&(this.cancel(),this.metadata=metadata,this._metadataComplete=!0,this._metadataSize=this.metadata.length,this._wire.extendedHandshake.metadata_size=this._metadataSize,this.emit("metadata",bencode.encode({info:bencode.decode(this.metadata)})),!0)}_send(dict,trailer){let buf=bencode.encode(dict);Buffer.isBuffer(trailer)&&(buf=Buffer.concat([buf,trailer])),this._wire.extended("ut_metadata",buf)}_request(piece){this._send({msg_type:0,piece})}_data(piece,buf,totalSize){const msg={msg_type:1,piece};"number"==typeof totalSize&&(msg.total_size=totalSize),this._send(msg,buf)}_reject(piece){this._send({msg_type:2,piece})}_onRequest(piece){if(!this._metadataComplete)return void this._reject(piece);const start=piece*PIECE_LENGTH;let end=start+PIECE_LENGTH;end>this._metadataSize&&(end=this._metadataSize);const buf=this.metadata.slice(start,end);this._data(piece,buf,this._metadataSize)}_onData(piece,buf){buf.length>PIECE_LENGTH||!this._fetching||(buf.copy(this.metadata,piece*PIECE_LENGTH),this._bitfield.set(piece),this._checkDone())}_onReject(piece){0=this._entries[this._index][this._countName]&&(this._index++,this._offset=0),this.value=this._entries[this._index]}}module.exports=class extends EventEmitter{constructor(file){super(),this._tracks=[],this._file=file,this._decoder=null,this._findMoov(0)}_findMoov(offset){this._decoder&&this._decoder.destroy();let toSkip=0;this._decoder=mp4.decode();const fileStream=this._file.createReadStream({start:offset});fileStream.pipe(this._decoder);const boxHandler=headers=>{"moov"===headers.type?(this._decoder.removeListener("box",boxHandler),this._decoder.decode(moov=>{fileStream.destroy();try{this._processMoov(moov)}catch(err){err.message=`Cannot parse mp4 file: ${err.message}`,this.emit("error",err)}})):headers.length<4096?(toSkip+=headers.length,this._decoder.ignore()):(this._decoder.removeListener("box",boxHandler),toSkip+=headers.length,fileStream.destroy(),this._decoder.destroy(),this._findMoov(offset+toSkip))};this._decoder.on("box",boxHandler)}_processMoov(moov){const traks=moov.traks;this._tracks=[],this._hasVideo=!1,this._hasAudio=!1;for(let i=0;i=stbl.stsz.entries.length)break;if(sampleInChunk++,offsetInChunk+=size,sampleInChunk>=currChunkEntry.samplesPerChunk){sampleInChunk=0,offsetInChunk=0,chunk++;const nextChunkEntry=stbl.stsc.entries[sampleToChunkIndex+1];nextChunkEntry&&chunk+1>=nextChunkEntry.firstChunk&&sampleToChunkIndex++}dts+=duration,decodingTimeEntry.inc(),presentationOffsetEntry&&presentationOffsetEntry.inc(),sync&&syncSampleIndex++}trak.mdia.mdhd.duration=0,trak.tkhd.duration=0;const defaultSampleDescriptionIndex=currChunkEntry.sampleDescriptionId,trackMoov={type:"moov",mvhd:moov.mvhd,traks:[{tkhd:trak.tkhd,mdia:{mdhd:trak.mdia.mdhd,hdlr:trak.mdia.hdlr,elng:trak.mdia.elng,minf:{vmhd:trak.mdia.minf.vmhd,smhd:trak.mdia.minf.smhd,dinf:trak.mdia.minf.dinf,stbl:{stsd:stbl.stsd,stts:empty(),ctts:empty(),stsc:empty(),stsz:empty(),stco:empty(),stss:empty()}}}}],mvex:{mehd:{fragmentDuration:moov.mvhd.duration},trexs:[{trackId:trak.tkhd.trackId,defaultSampleDescriptionIndex,defaultSampleDuration:0,defaultSampleSize:0,defaultSampleFlags:0}]}};this._tracks.push({fragmentSequence:1,trackId:trak.tkhd.trackId,timeScale:trak.mdia.mdhd.timeScale,samples,currSample:null,currTime:null,moov:trackMoov,mime})}if(0===this._tracks.length)return void this.emit("error",new Error("no playable tracks"));moov.mvhd.duration=0,this._ftyp={type:"ftyp",brand:"iso5",brandVersion:0,compatibleBrands:["iso5"]};const ftypBuf=Box.encode(this._ftyp),data=this._tracks.map(track=>{const moovBuf=Box.encode(track.moov);return{mime:track.mime,init:Buffer.concat([ftypBuf,moovBuf])}});this.emit("ready",data)}seek(time){if(!this._tracks)throw new Error("Not ready yet; wait for 'ready' event");this._fileStream&&(this._fileStream.destroy(),this._fileStream=null);let startOffset=-1;if(this._tracks.map((track,i)=>{track.outStream&&track.outStream.destroy(),track.inStream&&(track.inStream.destroy(),track.inStream=null);const outStream=track.outStream=mp4.encode(),fragment=this._generateFragment(i,time);if(!fragment)return outStream.finalize();(-1===startOffset||fragment.ranges[0].start{outStream.destroyed||outStream.box(frag.moof,err=>{if(err)return this.emit("error",err);if(!outStream.destroyed){const slicedStream=track.inStream.slice(frag.ranges);slicedStream.pipe(outStream.mediaData(frag.length,err=>{if(err)return this.emit("error",err);if(!outStream.destroyed){const nextFrag=this._generateFragment(i);return nextFrag?void writeFragment(nextFrag):outStream.finalize()}}))}})};writeFragment(fragment)}),0<=startOffset){const fileStream=this._fileStream=this._file.createReadStream({start:startOffset});this._tracks.forEach(track=>{track.inStream=new RangeSliceStream(startOffset,{highWaterMark:1e7}),fileStream.pipe(track.inStream)})}return this._tracks.map(track=>track.outStream)}_findSampleBefore(trackInd,time){const track=this._tracks[trackInd],scaledTime=_Mathfloor(track.timeScale*time);let sample=bs(track.samples,scaledTime,(sample,t)=>{const pts=sample.dts+sample.presentationOffset;return pts-t});for(-1===sample?sample=0:0>sample&&(sample=-sample-2);!track.samples[sample].sync;)sample--;return sample}_generateFragment(track,time){const currTrack=this._tracks[track];let firstSample;if(firstSample=void 0===time?currTrack.currSample:this._findSampleBefore(track,time),firstSample>=currTrack.samples.length)return null;const startDts=currTrack.samples[firstSample].dts;let totalLen=0;const ranges=[];for(var currSample=firstSample;currSample=currTrack.timeScale*1)break;totalLen+=sample.size;const currRange=ranges.length-1;0>currRange||ranges[currRange].end!==sample.offset?ranges.push({start:sample.offset,end:sample.offset+sample.size}):ranges[currRange].end+=sample.size}return currTrack.currSample=currSample,{moof:this._generateMoof(track,firstSample,currSample),ranges,length:totalLen}}_generateMoof(track,firstSample,lastSample){const currTrack=this._tracks[track],entries=[];let trunVersion=0;for(let j=firstSample;jcurrSample.presentationOffset&&(trunVersion=1),entries.push({sampleDuration:currSample.duration,sampleSize:currSample.size,sampleFlags:currSample.sync?33554432:16842752,sampleCompositionTimeOffset:currSample.presentationOffset})}const moof={type:"moof",mfhd:{sequenceNumber:currTrack.fragmentSequence++},trafs:[{tfhd:{flags:131072,trackId:currTrack.trackId},tfdt:{baseMediaDecodeTime:currTrack.samples[firstSample].dts},trun:{flags:3841,dataOffset:8,entries,version:trunVersion}}]};return moof.trafs[0].trun.dataOffset+=Box.encodingLength(moof),moof}}}).call(this)}).call(this,require("buffer").Buffer)},{"binary-search":30,buffer:69,events:70,"mp4-box-encoding":184,"mp4-stream":187,"range-slice-stream":224}],290:[function(require,module){function VideoStream(file,mediaElem,opts={}){return this instanceof VideoStream?void(this.detailedError=null,this._elem=mediaElem,this._elemWrapper=new MediaElementWrapper(mediaElem),this._waitingFired=!1,this._trackMeta=null,this._file=file,this._tracks=null,"none"!==this._elem.preload&&this._createMuxer(),this._onError=()=>{this.detailedError=this._elemWrapper.detailedError,this.destroy()},this._onWaiting=()=>{this._waitingFired=!0,this._muxer?this._tracks&&this._pump():this._createMuxer()},mediaElem.autoplay&&(mediaElem.preload="auto"),mediaElem.addEventListener("waiting",this._onWaiting),mediaElem.addEventListener("error",this._onError)):(console.warn("Don't invoke VideoStream without the 'new' keyword."),new VideoStream(file,mediaElem,opts))}const MediaElementWrapper=require("mediasource"),pump=require("pump"),MP4Remuxer=require("./mp4-remuxer");VideoStream.prototype={_createMuxer(){this._muxer=new MP4Remuxer(this._file),this._muxer.on("ready",data=>{this._tracks=data.map(trackData=>{const mediaSource=this._elemWrapper.createWriteStream(trackData.mime);mediaSource.on("error",err=>{this._elemWrapper.error(err)});const track={muxed:null,mediaSource,initFlushed:!1,onInitFlushed:null};return mediaSource.write(trackData.init,err=>{track.initFlushed=!0,track.onInitFlushed&&track.onInitFlushed(err)}),track}),(this._waitingFired||"auto"===this._elem.preload)&&this._pump()}),this._muxer.on("error",err=>{this._elemWrapper.error(err)})},_pump(){const muxed=this._muxer.seek(this._elem.currentTime,!this._tracks);this._tracks.forEach((track,i)=>{const pumpTrack=()=>{track.muxed&&(track.muxed.destroy(),track.mediaSource=this._elemWrapper.createWriteStream(track.mediaSource),track.mediaSource.on("error",err=>{this._elemWrapper.error(err)})),track.muxed=muxed[i],pump(track.muxed,track.mediaSource)};track.initFlushed?pumpTrack():track.onInitFlushed=err=>err?void this._elemWrapper.error(err):void pumpTrack()})},destroy(){this.destroyed||(this.destroyed=!0,this._elem.removeEventListener("waiting",this._onWaiting),this._elem.removeEventListener("error",this._onError),this._tracks&&this._tracks.forEach(track=>{track.muxed&&track.muxed.destroy()}),this._elem.src="")}},module.exports=VideoStream},{"./mp4-remuxer":289,mediasource:172,pump:213}],291:[function(require,module){function wrappy(fn,cb){function wrapper(){for(var args=Array(arguments.length),i=0;i */const EventEmitter=require("events"),path=require("path"),concat=require("simple-concat"),createTorrent=require("create-torrent"),debugFactory=require("debug"),DHT=require("bittorrent-dht/client"),loadIPSet=require("load-ip-set"),parallel=require("run-parallel"),parseTorrent=require("parse-torrent"),Peer=require("simple-peer"),queueMicrotask=require("queue-microtask"),randombytes=require("randombytes"),sha1=require("simple-sha1"),speedometer=require("speedometer"),{ThrottleGroup}=require("speed-limiter"),ConnPool=require("./lib/conn-pool.js"),Torrent=require("./lib/torrent.js"),{version:VERSION}=require("./package.json"),debug=debugFactory("webtorrent"),VERSION_STR=VERSION.replace(/\d*./g,v=>`0${v%100}`.slice(-2)).slice(0,4);class WebTorrent extends EventEmitter{constructor(opts={}){super(),this.peerId="string"==typeof opts.peerId?opts.peerId:Buffer.isBuffer(opts.peerId)?opts.peerId.toString("hex"):Buffer.from(`-WW${VERSION_STR}-`+randombytes(9).toString("base64")).toString("hex"),this.peerIdBuffer=Buffer.from(this.peerId,"hex"),this.nodeId="string"==typeof opts.nodeId?opts.nodeId:Buffer.isBuffer(opts.nodeId)?opts.nodeId.toString("hex"):randombytes(20).toString("hex"),this.nodeIdBuffer=Buffer.from(this.nodeId,"hex"),this._debugId=this.peerId.toString("hex").substring(0,7),this.destroyed=!1,this.listening=!1,this.torrentPort=opts.torrentPort||0,this.dhtPort=opts.dhtPort||0,this.tracker=opts.tracker===void 0?{}:opts.tracker,this.lsd=!1!==opts.lsd,this.utPex=!1!==opts.utPex,this.torrents=[],this.maxConns=+opts.maxConns||55,this.utp=WebTorrent.UTP_SUPPORT&&!1!==opts.utp,this._downloadLimit=_Mathmax("number"==typeof opts.downloadLimit?opts.downloadLimit:-1,-1),this._uploadLimit=_Mathmax("number"==typeof opts.uploadLimit?opts.uploadLimit:-1,-1),this.serviceWorker=null,this.workerKeepAliveInterval=null,this.workerPortCount=0,!0===opts.secure&&require("./lib/peer").enableSecure(),this._debug("new webtorrent (peerId %s, nodeId %s, port %s)",this.peerId,this.nodeId,this.torrentPort),this.throttleGroups={down:new ThrottleGroup({rate:_Mathmax(this._downloadLimit,0),enabled:0<=this._downloadLimit}),up:new ThrottleGroup({rate:_Mathmax(this._uploadLimit,0),enabled:0<=this._uploadLimit})},this.tracker&&("object"!=typeof this.tracker&&(this.tracker={}),globalThis.WRTC&&!this.tracker.wrtc&&(this.tracker.wrtc=globalThis.WRTC)),"function"==typeof ConnPool?this._connPool=new ConnPool(this):queueMicrotask(()=>{this._onListening()}),this._downloadSpeed=speedometer(),this._uploadSpeed=speedometer(),!1!==opts.dht&&"function"==typeof DHT?(this.dht=new DHT(Object.assign({},{nodeId:this.nodeId},opts.dht)),this.dht.once("error",err=>{this._destroy(err)}),this.dht.once("listening",()=>{const address=this.dht.address();address&&(this.dhtPort=address.port)}),this.dht.setMaxListeners(0),this.dht.listen(this.dhtPort)):this.dht=!1,this.enableWebSeeds=!1!==opts.webSeeds;const ready=()=>{this.destroyed||(this.ready=!0,this.emit("ready"))};"function"==typeof loadIPSet&&null!=opts.blocklist?loadIPSet(opts.blocklist,{headers:{"user-agent":`WebTorrent/${VERSION} (https://webtorrent.io)`}},(err,ipSet)=>err?console.error(`Failed to load blocklist: ${err.message}`):void(this.blocked=ipSet,ready())):queueMicrotask(ready)}loadWorker(controller,cb=()=>{}){if(!(controller instanceof ServiceWorker))throw new Error("Invalid worker registration");if("activated"!==controller.state)throw new Error("Worker isn't activated");this.serviceWorker=controller,navigator.serviceWorker.addEventListener("message",event=>{const{data}=event;if(!data.type||"webtorrent"===!data.type||!data.url)return null;let[infoHash,...filePath]=data.url.slice(data.url.indexOf(data.scope+"webtorrent/")+11+data.scope.length).split("/");if(filePath=decodeURI(filePath.join("/")),!infoHash||!filePath)return null;const[port]=event.ports,file=this.get(infoHash)&&this.get(infoHash).files.find(file=>file.path===filePath);if(!file)return null;const[response,stream,raw]=file._serve(data),asyncIterator=stream&&stream[Symbol.asyncIterator](),cleanup=()=>{port.onmessage=null,stream&&stream.destroy(),raw&&raw.destroy(),this.workerPortCount--,this.workerPortCount||(clearInterval(this.workerKeepAliveInterval),this.workerKeepAliveInterval=null)};port.onmessage=async msg=>{if(msg.data){let chunk;try{chunk=(await asyncIterator.next()).value}catch(e){}port.postMessage(chunk),chunk||cleanup(),this.workerKeepAliveInterval||(this.workerKeepAliveInterval=setInterval(()=>fetch(`${this.serviceWorker.scriptURL.substr(0,this.serviceWorker.scriptURL.lastIndexOf("/")+1).slice(window.location.origin.length)}webtorrent/keepalive/`),2e4))}else cleanup()},this.workerPortCount++,port.postMessage(response)}),cb(this.serviceWorker)}get downloadSpeed(){return this._downloadSpeed()}get uploadSpeed(){return this._uploadSpeed()}get progress(){const torrents=this.torrents.filter(torrent=>1!==torrent.progress),downloaded=torrents.reduce((total,torrent)=>total+torrent.downloaded,0),length=torrents.reduce((total,torrent)=>total+(torrent.length||0),0)||1;return downloaded/length}get ratio(){const uploaded=this.torrents.reduce((total,torrent)=>total+torrent.uploaded,0),received=this.torrents.reduce((total,torrent)=>total+torrent.received,0)||1;return uploaded/received}get(torrentId){if(!(torrentId instanceof Torrent)){let parsed;try{parsed=parseTorrent(torrentId)}catch(err){}if(!parsed)return null;if(!parsed.infoHash)throw new Error("Invalid torrent identifier");for(const torrent of this.torrents)if(torrent.infoHash===parsed.infoHash)return torrent}else if(this.torrents.includes(torrentId))return torrentId;return null}add(torrentId,opts={},ontorrent=()=>{}){function onClose(){torrent.removeListener("_infoHash",onInfoHash),torrent.removeListener("ready",onReady),torrent.removeListener("close",onClose)}if(this.destroyed)throw new Error("client is destroyed");"function"==typeof opts&&([opts,ontorrent]=[{},opts]);const onInfoHash=()=>{if(!this.destroyed)for(const t of this.torrents)if(t.infoHash===torrent.infoHash&&t!==torrent)return void torrent._destroy(new Error(`Cannot add duplicate torrent ${torrent.infoHash}`))},onReady=()=>{this.destroyed||(ontorrent(torrent),this.emit("torrent",torrent))};this._debug("add"),opts=opts?Object.assign({},opts):{};const torrent=new Torrent(torrentId,this,opts);return this.torrents.push(torrent),torrent.once("_infoHash",onInfoHash),torrent.once("ready",onReady),torrent.once("close",onClose),torrent}seed(input,opts,onseed){if(this.destroyed)throw new Error("client is destroyed");"function"==typeof opts&&([opts,onseed]=[{},opts]),this._debug("seed"),opts=opts?Object.assign({},opts):{},opts.skipVerify=!0;const isFilePath="string"==typeof input;isFilePath&&(opts.path=path.dirname(input)),opts.createdBy||(opts.createdBy=`WebTorrent/${VERSION_STR}`);const _onseed=torrent=>{this._debug("on seed"),"function"==typeof onseed&&onseed(torrent),torrent.emit("seed"),this.emit("seed",torrent)},torrent=this.add(null,opts,torrent=>{const tasks=[cb=>isFilePath||opts.preloadedStore?cb():void torrent.load(streams,cb)];this.dht&&tasks.push(cb=>{torrent.once("dhtAnnounce",cb)}),parallel(tasks,err=>this.destroyed?void 0:err?torrent._destroy(err):void _onseed(torrent))});let streams;return isFileList(input)?input=Array.from(input):!Array.isArray(input)&&(input=[input]),parallel(input.map(item=>cb=>{!opts.preloadedStore&&isReadable(item)?concat(item,(err,buf)=>err?cb(err):void(buf.name=item.name,cb(null,buf))):cb(null,item)}),(err,input)=>this.destroyed?void 0:err?torrent._destroy(err):void createTorrent.parseInput(input,opts,(err,files)=>this.destroyed?void 0:err?torrent._destroy(err):void(streams=files.map(file=>file.getStream),createTorrent(input,opts,(err,torrentBuf)=>{if(!this.destroyed){if(err)return torrent._destroy(err);const existingTorrent=this.get(torrentBuf);existingTorrent?(console.warn("A torrent with the same id is already being seeded"),torrent._destroy(),"function"==typeof onseed&&onseed(existingTorrent)):torrent._onTorrentId(torrentBuf)}})))),torrent}remove(torrentId,opts,cb){if("function"==typeof opts)return this.remove(torrentId,null,opts);this._debug("remove");const torrent=this.get(torrentId);if(!torrent)throw new Error(`No torrent with id ${torrentId}`);this._remove(torrentId,opts,cb)}_remove(torrentId,opts,cb){if("function"==typeof opts)return this._remove(torrentId,null,opts);const torrent=this.get(torrentId);torrent&&(this.torrents.splice(this.torrents.indexOf(torrent),1),torrent.destroy(opts,cb),this.dht&&this.dht._tables.remove(torrent.infoHash))}address(){return this.listening?this._connPool?this._connPool.tcpServer.address():{address:"0.0.0.0",family:"IPv4",port:0}:null}throttleDownload(rate){return(rate=+rate,!(isNaN(rate)||!isFinite(rate)||-1>rate))&&(this._downloadLimit=rate,0>this._downloadLimit?this.throttleGroups.down.setEnabled(!1):void(this.throttleGroups.down.setEnabled(!0),this.throttleGroups.down.setRate(this._downloadLimit)))}throttleUpload(rate){return(rate=+rate,!(isNaN(rate)||!isFinite(rate)||-1>rate))&&(this._uploadLimit=rate,0>this._uploadLimit?this.throttleGroups.up.setEnabled(!1):void(this.throttleGroups.up.setEnabled(!0),this.throttleGroups.up.setRate(this._uploadLimit)))}destroy(cb){if(this.destroyed)throw new Error("client already destroyed");this._destroy(null,cb)}_destroy(err,cb){this._debug("client destroy"),this.destroyed=!0;const tasks=this.torrents.map(torrent=>cb=>{torrent.destroy(cb)});this._connPool&&tasks.push(cb=>{this._connPool.destroy(cb)}),this.dht&&tasks.push(cb=>{this.dht.destroy(cb)}),parallel(tasks,cb),err&&this.emit("error",err),this.torrents=[],this._connPool=null,this.dht=null,this.throttleGroups.down.destroy(),this.throttleGroups.up.destroy()}_onListening(){if(this._debug("listening"),this.listening=!0,this._connPool){const address=this._connPool.tcpServer.address();address&&(this.torrentPort=address.port)}this.emit("listening")}_debug(){const args=[].slice.call(arguments);args[0]=`[${this._debugId}] ${args[0]}`,debug(...args)}_getByHash(infoHashHash){for(const torrent of this.torrents)if(torrent.infoHashHash||(torrent.infoHashHash=sha1.sync(Buffer.from("72657132"+torrent.infoHash,"hex"))),infoHashHash===torrent.infoHashHash)return torrent;return null}}WebTorrent.WEBRTC_SUPPORT=Peer.WEBRTC_SUPPORT,WebTorrent.UTP_SUPPORT=ConnPool.UTP_SUPPORT,WebTorrent.VERSION=VERSION,module.exports=WebTorrent}).call(this)}).call(this,require("buffer").Buffer)},{"./lib/conn-pool.js":41,"./lib/peer":3,"./lib/torrent.js":5,"./package.json":293,"bittorrent-dht/client":41,buffer:69,"create-torrent":103,debug:105,events:70,"load-ip-set":41,"parse-torrent":197,path:71,"queue-microtask":218,randombytes:221,"run-parallel":245,"simple-concat":257,"simple-peer":259,"simple-sha1":260,"speed-limiter":263,speedometer:267}]},{},[294])(294)}); \ No newline at end of file diff --git a/main.go b/main.go index 9bf0fe7..918404b 100644 --- a/main.go +++ b/main.go @@ -34,7 +34,8 @@ // This will allow distributed content delivery but put a memory and bendwidth strain on the // bootstrap sever. Look into Web Transport for the raspberry pi overhead. Could buy a few more RPIs // and make a little cluster -// Domain name so we can get a certificate and serve HTTPS / HTTP3 + +// ✅ Domain name so we can get a certificate and serve HTTPS / HTTP3 // Think about compiling Typescript on initial access and caching the JS in a service worker // so you don't need a build system to change things. @@ -43,23 +44,59 @@ package main import ( + "encoding/json" + "fmt" + "io" "log" "net/http" "os" "path/filepath" "strconv" + "strings" + "github.com/andybalholm/brotli" "github.com/gorilla/websocket" - "github.com/quic-go/quic-go/http3" ) var upgrader = websocket.Upgrader{ CheckOrigin: func(r *http.Request) bool { - return true // Note: In production, you'd want to check the origin. + origin := r.Header.Get("Origin") + return origin == "https://ddlion.net" }, } -// handleWebSocket handles WebSocket requests from the peer. +func websocketCloseHandler(code int, text string) error { + log.Print("Client closed websocket.") + return nil +} + +type Message struct { + Type string `json:"type"` +} + +type MessageHandler func([]byte, *websocket.Conn) error + +var messageHandlers = make(map[string]MessageHandler) + +func registerHandler(messageType string, handler MessageHandler) { + messageHandlers[messageType] = handler +} + +func dispatchMessage(message []byte, conn *websocket.Conn) error { + var msg Message + if err := json.Unmarshal(message, &msg); err != nil { + return err + } + + handler, ok := messageHandlers[msg.Type] + if !ok { + log.Printf("No handler registered for message type: %s", msg.Type) + return nil + } + + return handler(message, conn) +} + func handleWebSocket(w http.ResponseWriter, r *http.Request) { log.Println("Websocket connection!", r.RemoteAddr) @@ -70,47 +107,126 @@ func handleWebSocket(w http.ResponseWriter, r *http.Request) { } defer conn.Close() + conn.SetCloseHandler(websocketCloseHandler) + for { - mt, message, err := conn.ReadMessage() + _, message, err := conn.ReadMessage() if err != nil { - log.Println("Read error:", err) + log.Println("ReadMessage error:", err) break } log.Printf("recv: %s", message) - err = conn.WriteMessage(mt, message) - if err != nil { - log.Println("Write error:", err) - break + if err := dispatchMessage(message, conn); err != nil { + log.Printf("Error dispatching message: %v", err) } } } -// LoggingHandler logs requests and delegates them to the underlying handler. -type LoggingHandler struct { - handler http.Handler +// Example handlers +func handlePing(message []byte, conn *websocket.Conn) error { + var pingMsg struct { + Type string `json:"type"` + PeerID string `json:"peer_id"` + } + if err := json.Unmarshal(message, &pingMsg); err != nil { + return err + } + log.Printf("Received ping from peer: %s", pingMsg.PeerID) + return nil } -func (lh *LoggingHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - log.Printf("Serving file: %s", r.URL.Path) - lh.handler.ServeHTTP(w, r) +type PeerSet map[string]struct{} + +var userPeers = make(map[string]PeerSet) +var peerConnections = make(map[string]*websocket.Conn) + +func handleHello(message []byte, conn *websocket.Conn) error { + + var m struct { + Type string `json:"type"` + UserID string `json:"user_id"` + PeerID string `json:"peer_id"` + } + + if err := json.Unmarshal(message, &m); err != nil { + return err + } + + if userPeers[m.UserID] == nil { + userPeers[m.UserID] = make(PeerSet) + } + + userPeers[m.UserID][m.PeerID] = struct{}{} + peerConnections[m.PeerID] = conn + + jsonData, _ := json.MarshalIndent(userPeers, "", " ") + fmt.Println(string(jsonData), peerConnections) + + log.Printf("Received connect from peer: %s, user:%s", m.PeerID, m.UserID) + return nil +} + +// LoggingHandler logs requests and delegates them to the underlying handler. +// type LoggingHandler struct { +// handler http.Handler +// } + +// func (lh *LoggingHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { +// log.Printf("Serving file: %s", r.URL.Path) +// lh.handler.ServeHTTP(w, r) +// } + +// BrotliResponseWriter wraps http.ResponseWriter to support Brotli compression +type brotliResponseWriter struct { + http.ResponseWriter + Writer io.Writer +} + +func (w *brotliResponseWriter) Write(b []byte) (int, error) { + return w.Writer.Write(b) } // noDirListing wraps an http.FileServer handler to prevent directory listings func noDirListing(h http.Handler, root string) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { + // Serve index.html when root is requested if r.URL.Path == "/" { http.ServeFile(w, r, filepath.Join(root, "index.html")) return } - // Check if the path is a directory path := filepath.Join(root, r.URL.Path) - if info, err := os.Stat(path); err == nil && info.IsDir() { - http.NotFound(w, r) // Return 404 for directories other than root + info, err := os.Stat(path) + if err != nil || info.IsDir() { + log.Printf("404 File not found/dir serving: %s to ip %s, useragent %s", r.URL.Path, r.RemoteAddr, r.UserAgent()) + http.NotFound(w, r) return } + + log.Printf("Serving: %s to ip %s, useragent %s", r.URL.Path, r.RemoteAddr, r.UserAgent()) + + // Check if client supports Brotli encoding + if strings.Contains(r.Header.Get("Accept-Encoding"), "br") { + w.Header().Set("Content-Encoding", "br") + w.Header().Del("Content-Length") // Cannot know content length with compressed data + + // Wrap the ResponseWriter with Brotli writer + brWriter := brotli.NewWriter(w) + defer brWriter.Close() + + // Create a ResponseWriter that writes to brWriter + bw := &brotliResponseWriter{ + ResponseWriter: w, + Writer: brWriter, + } + + // Serve the file using http.ServeFile + http.ServeFile(bw, r, path) + return + } + h.ServeHTTP(w, r) } } @@ -122,8 +238,9 @@ func main() { addr := ":" + strconv.Itoa(port) log.Printf("Starting server on %s", addr) - // http.Handle("/", http.FileServer(http.Dir(wwwDir))) - // http3.ListenAndServeQUIC("localhost:4242", "/path/to/cert/chain.pem", "/path/to/privkey.pem", nil) + // Register handlers + registerHandler("hello", handleHello) + registerHandler("ping", handlePing) // Set up file server and WebSocket endpoint fs := http.FileServer(http.Dir(dir)) @@ -134,11 +251,11 @@ func main() { http.HandleFunc("/ws", handleWebSocket) // Configure and start the HTTP server - server := &http3.Server{ + server := &http.Server{ Addr: addr, Handler: nil, // nil uses the default ServeMux, which we configured above } log.Printf("Server is configured and serving on port %d...", port) - log.Fatal(server.ListenAndServeTLS("./fullchain.pem", "./privkey.pem")) + log.Fatal(server.ListenAndServeTLS("/etc/letsencrypt/live/ddlion.net/fullchain.pem", "/etc/letsencrypt/live/ddlion.net/privkey.pem")) } diff --git a/main.js b/main.js index e6efa74..9c3ce1d 100644 --- a/main.js +++ b/main.js @@ -1,4 +1,4 @@ -import { getData, addData, addDataArray } from "./db.js"; +import { getData, addData, addDataArray, clearData, deleteData } from "./db.js"; // let posts:any; // let keyBase = "dandelion_posts_v1_" // let key:string = ""; @@ -10,6 +10,31 @@ import { getData, addData, addDataArray } from "./db.js"; // minute: number, // second: number, // } +function waitMs(durationMs) { + return new Promise(resolve => setTimeout(resolve, durationMs)); +} +function uuidv4() { + return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); +} +let logLines = []; +let logLength = 10; +function log(message) { + logLines.push(`${new Date().toLocaleTimeString()}: ${message}`); + if (logLines.length > 10) { + logLines = logLines.slice(logLines.length - logLength); + } + let log = document.getElementById("log"); + if (!log) { + throw new Error(); + } + log.innerText = logLines.join("\n"); +} +function generateID() { + if (self.crypto.hasOwnProperty("randomUUID")) { + return self.crypto.randomUUID(); + } + return uuidv4(); +} class Post { constructor(author, author_id, text, post_timestamp, imageData = null, importedFrom = null, importSource = null) { this.post_timestamp = post_timestamp; @@ -34,319 +59,477 @@ window.addEventListener('scroll', () => { // You can perform your action here } }); -function initMarkdown() { - const renderer = new marked.Renderer(); - renderer.link = (href, title, text) => { - return `
    ${text}`; - }; - marked.setOptions({ renderer: renderer }); -} -function waitMs(durationMs) { - return new Promise(resolve => setTimeout(resolve, durationMs)); -} -function uuidv4() { - return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); -} -let logLines = []; -let logLength = 10; -function log(message) { - logLines.push(`${new Date().toLocaleTimeString()}: ${message}`); - if (logLines.length > 10) { - logLines = logLines.slice(logLines.length - logLength); - } - let log = document.getElementById("log"); - if (!log) { - throw new Error(); - } - log.innerText = logLines.join("\n"); -} -function arrayBufferToBase64(buffer) { - return new Promise((resolve, reject) => { - const blob = new Blob([buffer], { type: 'application/octet-stream' }); - const reader = new FileReader(); - reader.onloadend = () => { - const dataUrl = reader.result; - if (!dataUrl) { - resolve(null); - return; - } - const base64 = dataUrl.split(',')[1]; - resolve(base64); - }; - reader.onerror = (error) => { - reject(error); - }; - reader.readAsDataURL(blob); - }); -} -async function createTestData() { - let postsTestData = await (await fetch("./postsTestData.json")).json(); - return postsTestData; -} -let time = 0; -function timerStart() { - time = performance.now(); -} -function timerDelta() { - return performance.now() - time; -} -async function getFixedTweetText(entry) { - let fullText = entry.tweet.full_text; - let linkMarkdown = ""; - for (const url of entry.tweet.entities.urls) { - linkMarkdown = `[${url.display_url}](${url.expanded_url})`; - fullText = fullText.replace(url.url, linkMarkdown); - } - return fullText; -} -async function createTestData2(userID) { - log("Importing tweet archive"); - let postsTestData = []; - let response = await fetch("./tweets.js"); - let tweetsText = await response.text(); - tweetsText = tweetsText.replace("window.YTD.tweets.part0", "window.tweetData"); - new Function(tweetsText)(); - // let tweets = JSON.parse(tweetJSON); - let count = 0; - for (let entry of window.tweetData) { - // if (entry.tweet.hasOwnProperty("in_reply_to_screen_name") || entry.tweet.retweeted || entry.tweet.full_text.startsWith("RT")) { - // continue; - // } - let mediaURL = entry.tweet?.entities?.media?.[0]?.media_url; - let isImage = false; - if (mediaURL) { - isImage = mediaURL.includes('jpg'); +// let connectionReply = await wsConnection.send('hello'); +// for (let peeer of connectionReply) { +// let peerConnection = await wsConnection.send('connect', peer.id); +// if (peerConnection) { +// this.peers.push(peerConnection); +// let postIDs = await peerConnection.getPostIDs(); +// let postsWeDontHave = this.diffPostIDs(postIDs); +// let newPosts = await peerConnection.getPosts(postsWeDontHave); +// this.addPosts(newPosts); +// } +// } +class wsConnection { + connect() { + if (this.websocket?.readyState === WebSocket.OPEN) { + return; } - let imageData = null; - if (isImage) { - try { - let response = await fetch(mediaURL); - await waitMs(100); - if (response.status === 200) { - imageData = await response.arrayBuffer(); + window.clearInterval(this.websocketPingInterval); + if (this.websocket) { + this.websocket.close(); + } + ; + try { + this.websocket = new WebSocket(`wss://${window.location.hostname}:${window.location.port}/ws`); + } + catch (error) { + console.log(error.message); + return; + } + this.websocket.onopen = (evt) => { + log("ws:connected"); + this.websocket.send(`{"type":"hello", "user_id": "${this.userID}", "peer_id":"${this.peerID}"}`); + this.websocketPingInterval = window.setInterval(() => { + if (!navigator.onLine) { + return; } - console.log(imageData); - } - catch (e) { - console.log(e); - } + this.websocket.send(`{"type":"ping", "peer_id": "${this.peerID}"}`); + }, 10000); + }; + this.websocket.onclose = (evt) => { + log("ws:disconnected"); + // this.retry *= 2; + log(`Retrying in ${this.retry} seconds`); + window.setTimeout(() => { this.connect(); }, this.retry * 1000); + }; + this.websocket.onmessage = (event) => { + log('ws:response: ' + event.data); + }; + this.websocket.onerror = (event) => { + log('ws:error: ' + event); + }; + } + disconnect() { + this.websocket?.close(); + } + constructor(userID, peerID) { + this.websocket = null; + this.userID = ""; + this.peerID = ""; + this.websocketPingInterval = 0; + this.retry = 10; + this.state = 'disconnected'; + this.userID = userID; + this.peerID = peerID; + this.connect(); + if (!this.websocket) { + // set a timer and retry? } - let timeStamp = new Date(entry.tweet.created_at); - let tweetText = await getFixedTweetText(entry); - let newPost = new Post('bobbydigitales', userID, tweetText, timeStamp, imageData, 'twitter', entry); - postsTestData.push(newPost); - count++; - if (count % 100 === 0) { - log(`Imported ${count} posts...`); - // render(postsTestData); + } +} +// function connectWebsocket(userID: string) { +// let websocket = new WebSocket(`ws://${window.location.hostname}:${window.location.port}/ws`); +// websocket.onopen = function (evt) { +// log("Websocket: CONNECTED"); +// websocket.send(`{"messageType":"connect", "id": "${userID}"}`); +// let websocketPingInterval = window.setInterval(() => { websocket.send(`{"messageType":"ping", "id": "${userID}"}`); }, 5000) +// }; +// websocket.onclose = function (evt) { +// log("Websocket: DISCONNECTED"); +// }; +// websocket.onmessage = function (evt) { +// log('Websocket: RESPONSE: ' + evt.data); +// }; +// websocket.onerror = function (evt) { +// log('Websocket: ERROR: ' + evt); +// }; +// return websocket; +// } +class App { + constructor() { + this.userID = ''; + this.peerID = ''; + this.time = 0; + } + initMarkdown() { + const renderer = new marked.Renderer(); + renderer.link = (href, title, text) => { + return `${text}`; + }; + marked.setOptions({ renderer: renderer }); + } + arrayBufferToBase64(buffer) { + return new Promise((resolve, reject) => { + const blob = new Blob([buffer], { type: 'application/octet-stream' }); + const reader = new FileReader(); + reader.onloadend = () => { + const dataUrl = reader.result; + if (!dataUrl) { + resolve(null); + return; + } + const base64 = dataUrl.split(',')[1]; + resolve(base64); + }; + reader.onerror = (error) => { + reject(error); + }; + reader.readAsDataURL(blob); + }); + } + async createTestData() { + let postsTestData = await (await fetch("./postsTestData.json")).json(); + return postsTestData; + } + timerStart() { + this.time = performance.now(); + } + timerDelta() { + return performance.now() - this.time; + } + getFixedTweetText(entry) { + let fullText = entry.tweet.full_text; + let linkMarkdown = ""; + for (const url of entry.tweet.entities.urls) { + linkMarkdown = `[${url.display_url}](${url.expanded_url})`; + fullText = fullText.replace(url.url, linkMarkdown); } - // if (count == 100-1) { - // break; - // } + return fullText; } - return postsTestData; -} -async function createTestData3(userID) { - let posts = await (await (fetch('./posts.json'))).json(); - return posts; -} -async function registerServiceWorker() { - if (!("serviceWorker" in navigator)) { - return; + async importTweetArchive(userID, tweetArchive) { + log("Importing tweet archive"); + let postsTestData = []; + // let response = await fetch("./tweets.js"); + // let tweetsText = await response.text(); + // tweetsText = tweetsText.replace("window.YTD.tweets.part0", "window.tweetData"); + // new Function(tweetsText)(); + // let tweets = JSON.parse(tweetJSON); + let count = 0; + for (let entry of tweetArchive) { + if (entry.tweet.hasOwnProperty("in_reply_to_screen_name") || entry.tweet.retweeted || entry.tweet.full_text.startsWith("RT")) { + continue; + } + let mediaURL = entry.tweet?.entities?.media?.[0]?.media_url_https; + let isImage = false; + if (mediaURL) { + isImage = mediaURL.includes('jpg'); + } + let imageData = null; + // if (isImage) { + // try { + // let response = await fetch(mediaURL); + // await waitMs(100); + // if (response.status === 200) { + // imageData = await response.arrayBuffer(); + // } + // console.log(imageData); + // } catch (e) { + // console.log(e); + // } + // } + let timeStamp = new Date(entry.tweet.created_at); + let tweetText = this.getFixedTweetText(entry); + let newPost = new Post('bobbydigitales', userID, tweetText, timeStamp, imageData, 'twitter', entry); + postsTestData.push(newPost); + count++; + if (count % 100 === 0) { + log(`Imported ${count} posts...`); + // render(postsTestData); + } + // if (count == 100-1) { + // break; + // } + } + return postsTestData; } - let registrations = await navigator.serviceWorker.getRegistrations(); - if (registrations.length > 0) { - console.log("Service worker already registered."); - return registrations[0]; - } - navigator.serviceWorker - .register("/sw.js") - .then((registration) => { - console.log("Service Worker registered with scope:", registration.scope); - return registration; - }) - .catch((error) => { - console.error("Service Worker registration failed:", error); - }); -} -function addPost(userID, posts, postText) { - if ((typeof postText !== "string") || postText.length === 0) { - log("Not posting an empty string..."); - return; - } - let post = new Post(`bobbydigitales`, userID, postText, new Date()); - posts.push(post); - // localStorage.setItem(key, JSON.stringify(posts)); - addData(userID, post); - render(posts); -} -function generateID() { - if (self.crypto.hasOwnProperty("randomUUID")) { - return self.crypto.randomUUID(); - } - return uuidv4(); -} -function getUserID() { - let id = localStorage.getItem("dandelion_id"); - if (!id) { - id = generateID(); - localStorage.setItem("dandelion_id", id); - } - return id; -} -function connectWebsocket(userID) { - let websocket = new WebSocket(`ws://${window.location.hostname}:${window.location.port}/ws`); - websocket.onopen = function (evt) { - log("Websocket: CONNECTED"); - websocket.send(`{"messageType":"connect", "id": "${userID}"}`); - let websocketPingInterval = window.setInterval(() => { websocket.send(`{"messageType":"ping", "id": "${userID}"}`); }, 5000); - }; - websocket.onclose = function (evt) { - log("Websocket: DISCONNECTED"); - }; - websocket.onmessage = function (evt) { - log('Websocket: RESPONSE: ' + evt.data); - }; - websocket.onerror = function (evt) { - log('Websocket: ERROR: ' + evt); - }; - return websocket; -} -function setFont(fontName, fontSize) { - let content = document.getElementById('content'); - if (!content) { - return; - } - content.style.fontFamily = fontName; - content.style.fontSize = fontSize; - let textArea = document.getElementById('textarea_post'); - if (!textArea) { - return; - } - textArea.style.fontFamily = fontName; - textArea.style.fontSize = fontSize; -} -function initOffline() { - // Event listener for going offline - window.addEventListener('offline', () => { log("offline"); }); - // Event listener for going online - window.addEventListener('online', () => { log("online"); }); - log(`Online status: ${navigator.onLine ? "online" : "offline"}`); -} -function initButtons(userID, posts) { - let font1Button = document.getElementById("button_font1"); - let font2Button = document.getElementById("button_font2"); - font1Button.addEventListener('click', () => { setFont('Bookerly', '16px'); }); - font2Button.addEventListener('click', () => { setFont('Virgil', '24px'); }); - let postButton = document.getElementById("button_post"); - let postText = document.getElementById("textarea_post"); - if (!(postButton && postText)) { - throw new Error(); - } - postButton.addEventListener("click", () => { - addPost(userID, posts, postText.value); - postText.value = ""; - }); -} -async function loadPosts(userID) { - timerStart(); - let posts = await getData(userID, new Date(2022, 8), new Date()); - if (posts.length > 0) { - log(`Loaded ${posts.length} posts in ${timerDelta().toFixed(2)}ms`); + async createTestData3(userID) { + let posts = await (await (fetch('./posts.json'))).json(); return posts; } - posts = await createTestData2(userID); - log("Adding test data..."); - addDataArray(userID, posts); - return await getData(userID, new Date(2022, 8), new Date()); -} -async function main() { - let posts = []; - let time = 0; - ``; - let delta = 0; - let urlParams = (new URL(window.location.href)).searchParams; - if (urlParams.get("sw") === "true") { - let registration = await registerServiceWorker(); - } - let userID = getUserID(); - log(`Your user ID is: ${userID}`); - if (navigator.storage && navigator.storage.persist && !navigator.storage.persisted) { - const isPersisted = await navigator.storage.persist(); - log(`Persisted storage granted: ${isPersisted}`); - } - log(`Persisted: ${(await navigator?.storage?.persisted())?.toString()}`); - initMarkdown(); - // let main = await fetch("/main.js"); - // let code = await main.text(); - // console.log(code); - // registration.active.postMessage({type:"updateMain", code:code}); - posts = await loadPosts(userID); - let websocket = connectWebsocket(userID); - initOffline(); - initButtons(userID, posts); - // debugger; - timerStart(); - render(posts); - let renderTime = timerDelta(); - log(`render took: ${renderTime.toFixed(2)}ms`); - log(`memory used: ${(performance.memory.usedJSHeapSize / 1024 / 1024).toFixed(2)}Mb`); -} -function render(posts) { - const fragment = document.createDocumentFragment(); - let contentDiv = document.getElementById("content"); - if (!contentDiv) { - throw new Error(); - } - contentDiv.innerHTML = ""; - let count = 0; - for (let i = posts.length - 1; i >= 0; i--) { - let postData = posts[i]; - let post = renderPost(postData); - if (post) { - fragment.appendChild(post); - count++; + async registerServiceWorker() { + if (!("serviceWorker" in navigator)) { + return; } - if (count > 100) { - break; + let registrations = await navigator.serviceWorker.getRegistrations(); + if (registrations.length > 0) { + console.log("Service worker already registered."); + return registrations[0]; } + navigator.serviceWorker + .register("/sw.js") + .then((registration) => { + console.log("Service Worker registered with scope:", registration.scope); + return registration; + }) + .catch((error) => { + console.error("Service Worker registration failed:", error); + }); } - if (!contentDiv) { - throw new Error("Couldn't get content div!"); + addPost(userID, posts, postText) { + if ((typeof postText !== "string") || postText.length === 0) { + log("Not posting an empty string..."); + return; + } + let post = new Post(`bobbydigitales`, userID, postText, new Date()); + posts.push(post); + // localStorage.setItem(key, JSON.stringify(posts)); + addData(userID, post); + this.render(posts); } - contentDiv.appendChild(fragment); -} -function renderPost(post) { - if (!(post.hasOwnProperty("text"))) { - throw new Error("Post is malformed!"); + getPeerID() { + let id = localStorage.getItem("peer_id"); + if (!id) { + id = generateID(); + localStorage.setItem("peer_id", id); + } + return id; } - let containerDiv = document.createElement("div"); - let textDiv = document.createElement("div"); - let timestampDiv = document.createElement("div"); - let hr = document.createElement("hr"); - textDiv.innerHTML = marked.parse(post.text); - // textDiv.innerHTML = DOMPurify.sanitize(marked.parse(post.text)); - timestampDiv.innerText = `${post.post_timestamp.toDateString()}`; - timestampDiv.title = `${post.post_timestamp.toLocaleTimeString()} · ${post.post_timestamp.toDateString()}`; - containerDiv.appendChild(hr); - containerDiv.appendChild(textDiv); - if (!("image_data" in post && post.image_data)) { - containerDiv.appendChild(timestampDiv); + getUserID() { + let id = localStorage.getItem("dandelion_id"); + if (!id) { + id = generateID(); + localStorage.setItem("dandelion_id", id); + } + return id; + } + setFont(fontName, fontSize) { + let content = document.getElementById('content'); + if (!content) { + return; + } + content.style.fontFamily = fontName; + content.style.fontSize = fontSize; + let textArea = document.getElementById('textarea_post'); + if (!textArea) { + return; + } + textArea.style.fontFamily = fontName; + textArea.style.fontSize = fontSize; + } + initOffline(connection) { + // Event listener for going offline + window.addEventListener('offline', () => { + log("offline"); + }); + // Event listener for going online + window.addEventListener('online', () => { + log("online"); + connection.connect(); + }); + log(`Online status: ${navigator.onLine ? "online" : "offline"}`); + } + selectFile(contentType) { + return new Promise(resolve => { + let input = document.createElement('input'); + input.type = 'file'; + // input.multiple = multiple; + input.accept = contentType; + input.onchange = () => { + if (input.files == null) { + resolve(null); + return; + } + let files = Array.from(input.files); + // if (multiple) + // resolve(files); + // else + resolve(files[0]); + }; + input.click(); + }); + } + readFile(file) { + // Always return a Promise + return new Promise((resolve, reject) => { + let content = ''; + const reader = new FileReader(); + // Wait till complete + reader.onloadend = function (e) { + content = e.target.result; + resolve(content); + }; + // Make sure to handle error states + reader.onerror = function (e) { + reject(e); + }; + reader.readAsText(file); + }); + } + initButtons(userID, posts, registration) { + let font1Button = document.getElementById("button_font1"); + let font2Button = document.getElementById("button_font2"); + let importTweetsButton = document.getElementById("import_tweets"); + let clearPostsButton = document.getElementById("clear_posts"); + let updateApp = document.getElementById("update_app"); + let ddlnLogoButton = document.getElementById('ddln-logo-button'); + font1Button.addEventListener('click', () => { this.setFont('Bookerly', '16px'); }); + font2Button.addEventListener('click', () => { this.setFont('Virgil', '16px'); }); + importTweetsButton.addEventListener('click', async () => { + let file = await this.selectFile('text/*'); + console.log(file); + if (file == null) { + return; + } + let tweetData = await this.readFile(file); + tweetData = tweetData.replace('window.YTD.tweets.part0 = ', ''); + const tweets = JSON.parse(tweetData); + let imported_posts = await this.importTweetArchive(userID, tweets); + clearData(userID); + // posts = posts.reverse(); + addDataArray(userID, imported_posts); + posts = await this.loadPosts(userID) ?? []; + this.render(posts); + }); + clearPostsButton.addEventListener('click', () => { clearData(userID); posts = []; this.render(posts); }); + let postButton = document.getElementById("button_post"); + let postText = document.getElementById("textarea_post"); + if (!(postButton && postText)) { + throw new Error(); + } + postButton.addEventListener("click", () => { + this.addPost(userID, posts, postText.value); + postText.value = ""; + }); + updateApp.addEventListener("click", () => { + registration?.active?.postMessage({ type: "update_app" }); + }); + let infoElement = document.getElementById('info'); + if (infoElement === null) { + return; + } + ddlnLogoButton.addEventListener('click', () => { infoElement.style.display == 'none' ? infoElement.style.display = 'block' : infoElement.style.display = 'none'; }); + } + async loadPosts(userID) { + this.timerStart(); + let posts = await getData(userID, new Date(2022, 8), new Date()); + if (posts.length > 0) { + log(`Loaded ${posts.length} posts in ${this.timerDelta().toFixed(2)}ms`); + return posts; + } + // posts = await createTestData2(userID); + // log("Adding test data..."); + // addDataArray(userID, posts); + // return await getData(userID, new Date(2022, 8), new Date()); + } + async main() { + let urlParams = (new URL(window.location.href)).searchParams; + let connection_userID = urlParams.get('connect'); + let registration = undefined; + if (urlParams.get("sw") === "true") { + registration = await this.registerServiceWorker(); + } + if (connection_userID) { + console.log('connect', connection_userID); + localStorage.setItem("dandelion_id", connection_userID); + } + let posts = []; + let userID = this.getUserID(); + let peerID = this.getPeerID(); + this.userID = userID; + this.peerID = peerID; + log(`user:${userID} peer:${peerID}`); + let websocket = new wsConnection(userID, peerID); + window.addEventListener('beforeunload', () => { websocket.disconnect(); }); + this.initOffline(websocket); + this.initButtons(userID, posts, registration); + let time = 0; + let delta = 0; + if (navigator.storage && navigator.storage.persist && !navigator.storage.persisted) { + debugger; + const isPersisted = await navigator.storage.persist(); + log(`Persisted storage granted: ${isPersisted}`); + } + log(`Persisted: ${(await navigator?.storage?.persisted())?.toString()}`); + this.initMarkdown(); + // let main = await fetch("/main.js"); + // let code = await main.text(); + // console.log(code); + // registration.active.postMessage({type:"updateMain", code:code}); + posts = await this.loadPosts(userID) ?? []; + // debugger; + this.timerStart(); + this.render(posts); // , (postID:string)=>{this.deletePost(userID, postID)} + let renderTime = this.timerDelta(); + log(`render took: ${renderTime.toFixed(2)}ms`); + if (performance?.memory) { + log(`memory used: ${(performance.memory.usedJSHeapSize / 1024 / 1024).toFixed(2)}Mb`); + } + // const client = new WebTorrent() + // // Sintel, a free, Creative Commons movie + // const torrentId = 'magnet:?xt=urn:btih:6091e199a8d9272a40dd9a25a621a5c355d6b0be&dn=WING+IT!+-+Blender+Open+Movie+1080p.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337'; + // client.add(torrentId, function (torrent: any) { + // // Torrents can contain many files. Let's use the .mp4 file + // const file = torrent.files.find(function (file: any) { + // return file.name.endsWith('.mp4') + // }) + // // Display the file by adding it to the DOM. + // // Supports video, audio, image files, and more! + // file.appendTo(document.getElementById('torrent-content')); + // }) + } + render(posts) { + const fragment = document.createDocumentFragment(); + let contentDiv = document.getElementById("content"); + if (!contentDiv) { + throw new Error(); + } + contentDiv.innerHTML = ""; + let count = 0; + new QRCode(document.getElementById('qrcode'), `https://ddlion.net/?connect=${this.userID}`); + for (let i = posts.length - 1; i >= 0; i--) { + let postData = posts[i]; + let post = this.renderPost(postData, posts); + if (post) { + fragment.appendChild(post); + count++; + } + if (count > 100) { + break; + } + } + if (!contentDiv) { + throw new Error("Couldn't get content div!"); + } + contentDiv.appendChild(fragment); + } + deletePost(userID, postID) { + deleteData(userID, postID); + } + renderPost(post, posts) { + if (!(post.hasOwnProperty("text"))) { + throw new Error("Post is malformed!"); + } + let containerDiv = document.createElement("div"); + let timestamp = `${post.post_timestamp.toLocaleTimeString()} · ${post.post_timestamp.toLocaleDateString()}`; + let deleteButton = document.createElement('button'); + deleteButton.innerText = 'delete'; + // deleteButton.onclick = ()=>{deletefunc(post.post_id)}; + let postTemplate = `

    +
    @${post.author} - ${post.post_timestamp.toLocaleDateString()}
    +
    ${marked.parse(post.text)}
    +
    `; + containerDiv.innerHTML = postTemplate; + containerDiv.appendChild(deleteButton); + // if (!("image_data" in post && post.image_data)) { + // containerDiv.appendChild(timestampDiv); + // return containerDiv; + // // return null; + // } + // let image = document.createElement("img"); + // const blob = new Blob([post.image_data as ArrayBuffer], { type: 'image/jpg' }); + // const url = URL.createObjectURL(blob); + // image.onload = () => { + // URL.revokeObjectURL(url); + // }; + // image.src = url; + // // image.src = image.src = "data:image/png;base64," + post.image; + // image.className = "postImage"; + // containerDiv.appendChild(image); + // containerDiv.appendChild(timestampDiv); return containerDiv; - // return null; } - let image = document.createElement("img"); - const blob = new Blob([post.image_data], { type: 'image/jpg' }); - const url = URL.createObjectURL(blob); - image.onload = () => { - URL.revokeObjectURL(url); - }; - image.src = url; - // image.src = image.src = "data:image/png;base64," + post.image; - image.className = "postImage"; - containerDiv.appendChild(image); - containerDiv.appendChild(timestampDiv); - return containerDiv; } -window.addEventListener("load", main); +let app = new App(); +window.addEventListener("load", app.main.bind(app)); //# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/main.js.map b/main.js.map index 2927b63..a7501be 100644 --- a/main.js.map +++ b/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["src/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"main.js","sourceRoot":"","sources":["src/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/mdns/main.js b/mdns/main.js new file mode 100644 index 0000000..a4f1233 --- /dev/null +++ b/mdns/main.js @@ -0,0 +1,13 @@ +const bonjour = require("bonjour")(); + +const PORT = 6789; + +// Advertise the service using bonjour +let result = bonjour.publish({ + name: "ddln", + type: "https", + port: PORT, + host: "ddln.local", +}); + +console.log(result); diff --git a/mdns/package-lock.json b/mdns/package-lock.json new file mode 100644 index 0000000..8c98fed --- /dev/null +++ b/mdns/package-lock.json @@ -0,0 +1,370 @@ +{ + "name": "mdns", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "bonjour": "^3.5.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==" + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + } + } +} diff --git a/mdns/package.json b/mdns/package.json new file mode 100644 index 0000000..bf14ed3 --- /dev/null +++ b/mdns/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "bonjour": "^3.5.0" + } +} diff --git a/package.json b/package.json index 129b587..e068d03 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { "devDependencies": { - "typescript": "^5.4.3" + "typescript": "^5.5.4" } } diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/src/db.ts b/src/db.ts index a2909a9..0bcfd5d 100644 --- a/src/db.ts +++ b/src/db.ts @@ -4,8 +4,7 @@ // email: string; // } -const dbName: string = "ddln"; -const storeNameBase: string = "posts"; +const postStoreName: string = "posts"; let keyBase = "dandelion_posts_v1_" let key = ""; @@ -19,8 +18,8 @@ type DBError = Event & { target: { errorCode: DOMException }; }; -export function openDatabase(userID:string): Promise { - const storeName = `${storeNameBase}_${userID}`; +export function openDatabase(userID: string): Promise { + const dbName = `user_${userID}` return new Promise((resolve, reject) => { const request: IDBOpenDBRequest = indexedDB.open(dbName, 1); @@ -33,8 +32,8 @@ export function openDatabase(userID:string): Promise { request.onupgradeneeded = (event: IDBVersionChangeEvent) => { const db: IDBDatabase = (event.target as IDBOpenDBRequest).result; - if (!db.objectStoreNames.contains(storeName)) { - let store = db.createObjectStore(storeName, { keyPath: "id", autoIncrement: true }); + if (!db.objectStoreNames.contains(postStoreName)) { + let store = db.createObjectStore(postStoreName, { keyPath: "id", autoIncrement: true }); store.createIndex("datetimeIndex", "post_timestamp", { unique: false }); store.createIndex("postIDIndex", "data.post_id", { unique: true }); @@ -52,12 +51,11 @@ export function openDatabase(userID:string): Promise { export async function addData(userID: string, data: any): Promise { try { - const storeName = `${storeNameBase}_${userID}`; const db = await openDatabase(userID); - const transaction = db.transaction(storeName, "readwrite"); - const store = transaction.objectStore(storeName); + const transaction = db.transaction(postStoreName, "readwrite"); + const store = transaction.objectStore(postStoreName); - const addRequest = store.add({post_timestamp: data.post_timestamp, data:data}); + const addRequest = store.add({ post_timestamp: data.post_timestamp, data: data }); addRequest.onsuccess = (e: Event) => { // console.log('Data has been added:', (e.target as IDBRequest).result); @@ -73,23 +71,72 @@ export async function addData(userID: string, data: any): Promise { } } +export async function deleteData(userID: string, postID: string) { + try { + const db = await openDatabase(userID); + const transaction = db.transaction(postStoreName, "readwrite"); + const store = transaction.objectStore(postStoreName); + const index = store.index("postIDIndex"); + + + const getRequest = index.getKey(postID); + + getRequest.onerror = e => console.log((e.target as IDBRequest).error) + + getRequest.onsuccess = e => { + const key = (e.target as IDBRequest).result; + if (key === undefined) { + console.error("Post not found"); + return null; + } + + const deleteRequest = store.delete(key); + deleteRequest.onerror = e => { console.error((e.target as IDBRequest).error); return false }; + deleteRequest.onsuccess = () => true; + } + } catch (error) { + console.error('Error in opening database:', error); + } +} + +export async function clearData(userID: string) { + try { + const db = await openDatabase(userID); + const transaction = db.transaction(postStoreName, "readwrite"); + const store = transaction.objectStore(postStoreName); + + const clearRequest = store.clear(); + clearRequest.onsuccess = (e: Event) => { + // console.log('Data has been added:', (e.target as IDBRequest).result); + }; + + clearRequest.onerror = (event: Event) => { + // Use a type assertion to access the specific properties of IDBRequest error event + const errorEvent = event as IDBRequestEvent; + console.error('Error in clearing data:', errorEvent.target.error?.message); + }; + + } catch (error) { + console.error('Error in opening database:', error); + } +} + export async function addDataArray(userID: string, array: any[]): Promise { try { - const storeName = `${storeNameBase}_${userID}`; const db = await openDatabase(userID); - const transaction = db.transaction(storeName, "readwrite"); - const store = transaction.objectStore(storeName); + const transaction = db.transaction(postStoreName, "readwrite"); + const store = transaction.objectStore(postStoreName); let count = 0; array.reverse(); for (let data of array) { - const addRequest = store.add({post_timestamp: data.post_timestamp, data:data}); + const addRequest = store.add({ post_timestamp: data.post_timestamp, data: data }); addRequest.onsuccess = (e: Event) => { // console.log('Data has been added:', (e.target as IDBRequest).result); }; - + addRequest.onerror = (event: Event) => { // Use a type assertion to access the specific properties of IDBRequest error event const errorEvent = event as IDBRequestEvent; @@ -103,17 +150,16 @@ export async function addDataArray(userID: string, array: any[]): Promise // } } - + } catch (error) { console.error('Error in opening database:', error); } } -export async function getData(userID:string, lowerID:Date, upperID:Date): Promise { - const storeName = `${storeNameBase}_${userID}`; +export async function getData(userID: string, lowerID: Date, upperID: Date): Promise { const db = await openDatabase(userID); - const transaction = db.transaction(storeName, "readonly"); - const store = transaction.objectStore(storeName); + const transaction = db.transaction(postStoreName, "readonly"); + const store = transaction.objectStore(postStoreName); return new Promise((resolve, reject) => { const keyRangeValue = IDBKeyRange.bound(lowerID, upperID); @@ -145,11 +191,10 @@ export async function getData(userID:string, lowerID:Date, upperID:Date): Promis }); } -export async function getAllData(userID:string): Promise { - const storeName = `${storeNameBase}_${userID}`; +export async function getAllData(userID: string): Promise { const db = await openDatabase(userID); - const transaction = db.transaction(storeName, "readonly"); - const store = transaction.objectStore(storeName); + const transaction = db.transaction(postStoreName, "readonly"); + const store = transaction.objectStore(postStoreName); return new Promise((resolve, reject) => { const getRequest = store.getAll(); diff --git a/src/main.ts b/src/main.ts index bc16614..3ddab61 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,9 @@ -import { openDatabase, getData, addData, addDataArray } from "./db.js" +import { openDatabase, getData, addData, addDataArray, clearData, deleteData} from "./db.js" + +declare let WebTorrent: any; declare let marked: any; +declare let QRCode: any; // let posts:any; // let keyBase = "dandelion_posts_v1_" // let key:string = ""; @@ -14,6 +17,39 @@ declare let marked: any; // second: number, // } +function waitMs(durationMs: number) { + return new Promise(resolve => setTimeout(resolve, durationMs)); +} + +function uuidv4() { + return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c: any) => + (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) + ); +} + + +let logLines: string[] = []; +let logLength = 10; +function log(message: string) { + logLines.push(`${new Date().toLocaleTimeString()}: ${message}`); + if (logLines.length > 10) { + logLines = logLines.slice(logLines.length - logLength); + } + let log = document.getElementById("log"); + if (!log) { + throw new Error(); + } + log.innerText = logLines.join("\n"); +} + +function generateID() { + if (self.crypto.hasOwnProperty("randomUUID")) { + return self.crypto.randomUUID(); + } + + return uuidv4(); +} + class Post { post_timestamp: Date; post_id: string; @@ -56,425 +92,629 @@ window.addEventListener('scroll', () => { }); -function initMarkdown() { - const renderer = new marked.Renderer(); - renderer.link = (href: any, title: string, text: string) => { - return `${text}`; - }; - marked.setOptions({ renderer: renderer }); -} -function waitMs(durationMs: number) { - return new Promise(resolve => setTimeout(resolve, durationMs)); -} +// let connectionReply = await wsConnection.send('hello'); +// for (let peeer of connectionReply) { +// let peerConnection = await wsConnection.send('connect', peer.id); +// if (peerConnection) { +// this.peers.push(peerConnection); +// let postIDs = await peerConnection.getPostIDs(); +// let postsWeDontHave = this.diffPostIDs(postIDs); + +// let newPosts = await peerConnection.getPosts(postsWeDontHave); -function uuidv4() { - return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c: any) => - (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) - ); -} +// this.addPosts(newPosts); -let logLines: string[] = []; -let logLength = 10; -function log(message: string) { - logLines.push(`${new Date().toLocaleTimeString()}: ${message}`); - if (logLines.length > 10) { - logLines = logLines.slice(logLines.length - logLength); - } - let log = document.getElementById("log"); - if (!log) { - throw new Error(); - } - log.innerText = logLines.join("\n"); -} - -function arrayBufferToBase64(buffer: ArrayBuffer) { - return new Promise((resolve, reject) => { - const blob = new Blob([buffer], { type: 'application/octet-stream' }); - const reader = new FileReader(); - - reader.onloadend = () => { - const dataUrl = reader.result as string; - if (!dataUrl) { - resolve(null); - return; - } - const base64 = dataUrl.split(',')[1]; - resolve(base64); - }; - - reader.onerror = (error) => { - reject(error); - }; - - reader.readAsDataURL(blob); - }); -} - -async function createTestData() { - let postsTestData = await (await fetch("./postsTestData.json")).json(); - - return postsTestData; -} - -let time = 0; - -function timerStart() { - time = performance.now(); -} - -function timerDelta() { - return performance.now() - time; -} - -async function getFixedTweetText(entry: any) { +// } +// } - let fullText = entry.tweet.full_text; - - let linkMarkdown = ""; - for (const url of entry.tweet.entities.urls) { - linkMarkdown = `[${url.display_url}](${url.expanded_url})`; - fullText = fullText.replace(url.url, linkMarkdown); - } - - return fullText -} - -async function createTestData2(userID: string) { - log("Importing tweet archive") - let postsTestData: any[] = []; - - let response = await fetch("./tweets.js"); - let tweetsText = await response.text(); - tweetsText = tweetsText.replace("window.YTD.tweets.part0", "window.tweetData"); - - new Function(tweetsText)(); +class wsConnection { + websocket: WebSocket | null = null; + userID = ""; + peerID = ""; + websocketPingInterval: number = 0; + retry = 10; + state = 'disconnected'; - // let tweets = JSON.parse(tweetJSON); - let count = 0; - - for (let entry of (window as any).tweetData) { - // if (entry.tweet.hasOwnProperty("in_reply_to_screen_name") || entry.tweet.retweeted || entry.tweet.full_text.startsWith("RT")) { - // continue; - // } - - let mediaURL: string = entry.tweet?.entities?.media?.[0]?.media_url; - let isImage = false; - if (mediaURL) { - isImage = mediaURL.includes('jpg'); + connect(): void { + if (this.websocket?.readyState === WebSocket.OPEN) { + return; } - let imageData = null; - if (isImage) { - try { - let response = await fetch(mediaURL); - await waitMs(100); - if (response.status === 200) { - imageData = await response.arrayBuffer(); + window.clearInterval(this.websocketPingInterval); + if (this.websocket) { this.websocket.close() }; + + try { + this.websocket = new WebSocket(`wss://${window.location.hostname}:${window.location.port}/ws`); + } catch (error: any) { + console.log(error.message); + return; + } + + this.websocket.onopen = (evt) => { + log("ws:connected"); + this.websocket!.send(`{"type":"hello", "user_id": "${this.userID}", "peer_id":"${this.peerID}"}`); + this.websocketPingInterval = window.setInterval(() => { + if (!navigator.onLine) { + return; } - console.log(imageData); - } catch (e) { - console.log(e); - } + this.websocket!.send(`{"type":"ping", "peer_id": "${this.peerID}"}`); + }, 10_000) + }; + this.websocket.onclose = (evt) => { + log("ws:disconnected"); + // this.retry *= 2; + log(`Retrying in ${this.retry} seconds`); + window.setTimeout(() => { this.connect(); }, this.retry * 1000); + }; + + this.websocket.onmessage = (event) => { + log('ws:response: ' + event.data); + }; + + this.websocket.onerror = (event) => { + log('ws:error: ' + event); + }; + } + + disconnect() { + this.websocket?.close(); + } + + + constructor(userID: string, peerID: string) { + this.userID = userID; + this.peerID = peerID; + this.connect(); + + if (!this.websocket) { + // set a timer and retry? } - let timeStamp = new Date(entry.tweet.created_at); - let tweetText = await getFixedTweetText(entry); - let newPost = new Post('bobbydigitales', userID, tweetText, timeStamp, imageData, 'twitter', entry); - - postsTestData.push(newPost); - - count++; - if (count % 100 === 0) { - log(`Imported ${count} posts...`); - // render(postsTestData); - } - - // if (count == 100-1) { - // break; - // } - } - return postsTestData; } -async function createTestData3(userID: string) { - let posts = await (await (fetch('./posts.json'))).json(); +// function connectWebsocket(userID: string) { +// let websocket = new WebSocket(`ws://${window.location.hostname}:${window.location.port}/ws`); - return posts; -} +// websocket.onopen = function (evt) { +// log("Websocket: CONNECTED"); +// websocket.send(`{"messageType":"connect", "id": "${userID}"}`); -async function registerServiceWorker() { - if (!("serviceWorker" in navigator)) { - return; +// let websocketPingInterval = window.setInterval(() => { websocket.send(`{"messageType":"ping", "id": "${userID}"}`); }, 5000) +// }; + +// websocket.onclose = function (evt) { +// log("Websocket: DISCONNECTED"); +// }; + +// websocket.onmessage = function (evt) { +// log('Websocket: RESPONSE: ' + evt.data); +// }; + +// websocket.onerror = function (evt) { +// log('Websocket: ERROR: ' + evt); +// }; + +// return websocket; +// } + +class App { + userID:string = ''; + peerID:string = ''; + + initMarkdown() { + const renderer = new marked.Renderer(); + renderer.link = (href: any, title: string, text: string) => { + return `${text}`; + }; + marked.setOptions({ renderer: renderer }); } - - let registrations = await navigator.serviceWorker.getRegistrations(); - if (registrations.length > 0) { - console.log("Service worker already registered."); - return registrations[0]; - } - - navigator.serviceWorker - .register("/sw.js") - .then((registration) => { - console.log("Service Worker registered with scope:", registration.scope); - return registration; - }) - .catch((error) => { - console.error("Service Worker registration failed:", error); + + arrayBufferToBase64(buffer: ArrayBuffer) { + return new Promise((resolve, reject) => { + const blob = new Blob([buffer], { type: 'application/octet-stream' }); + const reader = new FileReader(); + + reader.onloadend = () => { + const dataUrl = reader.result as string; + if (!dataUrl) { + resolve(null); + return; + } + const base64 = dataUrl.split(',')[1]; + resolve(base64); + }; + + reader.onerror = (error) => { + reject(error); + }; + + reader.readAsDataURL(blob); }); -} - -function addPost(userID: string, posts: Post[], postText: string) { - if ((typeof postText !== "string") || postText.length === 0) { - log("Not posting an empty string...") - return; } - - let post = new Post(`bobbydigitales`, userID, postText, new Date()); - - posts.push(post); - // localStorage.setItem(key, JSON.stringify(posts)); - addData(userID, post) - - render(posts); -} - -function generateID() { - if (self.crypto.hasOwnProperty("randomUUID")) { - return self.crypto.randomUUID(); + + async createTestData() { + let postsTestData = await (await fetch("./postsTestData.json")).json(); + + return postsTestData; } - - return uuidv4(); -} - -function getUserID() { - let id = localStorage.getItem("dandelion_id"); - - if (!id) { - id = generateID(); - localStorage.setItem("dandelion_id", id); + + time = 0; + + timerStart() { + this.time = performance.now(); } - - return id; -} - -function connectWebsocket(userID: string) { - let websocket = new WebSocket(`ws://${window.location.hostname}:${window.location.port}/ws`); - - websocket.onopen = function (evt) { - log("Websocket: CONNECTED"); - websocket.send(`{"messageType":"connect", "id": "${userID}"}`); - - let websocketPingInterval = window.setInterval(()=>{websocket.send(`{"messageType":"ping", "id": "${userID}"}`);}, 5000) - }; - - websocket.onclose = function (evt) { - log("Websocket: DISCONNECTED"); - }; - - websocket.onmessage = function (evt) { - log('Websocket: RESPONSE: ' + evt.data); - }; - - websocket.onerror = function (evt) { - log('Websocket: ERROR: ' + evt); - }; - - return websocket; -} - -function setFont(fontName: string, fontSize: string) { - - let content = document.getElementById('content'); - - if (!content) { - return; + + timerDelta() { + return performance.now() - this.time; } - - content.style.fontFamily = fontName; - content.style.fontSize = fontSize; - - let textArea = document.getElementById('textarea_post'); - if (!textArea) { - return; + + getFixedTweetText(entry: any) { + + + let fullText = entry.tweet.full_text; + + let linkMarkdown = ""; + for (const url of entry.tweet.entities.urls) { + linkMarkdown = `[${url.display_url}](${url.expanded_url})`; + fullText = fullText.replace(url.url, linkMarkdown); + } + + return fullText } - - textArea.style.fontFamily = fontName; - textArea.style.fontSize = fontSize; -} - -function initOffline() { - // Event listener for going offline - window.addEventListener('offline', () => { log("offline") }); - - // Event listener for going online - window.addEventListener('online', () => { log("online") }); - - log(`Online status: ${navigator.onLine ? "online" : "offline"}`) - -} - -function initButtons(userID: string, posts: Post[]) { - let font1Button = document.getElementById("button_font1") as HTMLButtonElement; - let font2Button = document.getElementById("button_font2") as HTMLButtonElement; - - font1Button.addEventListener('click', () => { setFont('Bookerly', '16px') }); - font2Button.addEventListener('click', () => { setFont('Virgil', '24px') }); - - - let postButton = document.getElementById("button_post") as HTMLButtonElement; - let postText = document.getElementById("textarea_post") as HTMLTextAreaElement; - - if (!(postButton && postText)) { - throw new Error(); + + async importTweetArchive(userID: string, tweetArchive: any[]) { + log("Importing tweet archive") + let postsTestData: any[] = []; + + // let response = await fetch("./tweets.js"); + // let tweetsText = await response.text(); + // tweetsText = tweetsText.replace("window.YTD.tweets.part0", "window.tweetData"); + + // new Function(tweetsText)(); + + + // let tweets = JSON.parse(tweetJSON); + let count = 0; + + for (let entry of tweetArchive) { + if (entry.tweet.hasOwnProperty("in_reply_to_screen_name") || entry.tweet.retweeted || entry.tweet.full_text.startsWith("RT")) { + continue; + } + + let mediaURL: string = entry.tweet?.entities?.media?.[0]?.media_url_https; + let isImage = false; + if (mediaURL) { + isImage = mediaURL.includes('jpg'); + } + + let imageData = null; + // if (isImage) { + // try { + // let response = await fetch(mediaURL); + // await waitMs(100); + // if (response.status === 200) { + // imageData = await response.arrayBuffer(); + // } + // console.log(imageData); + // } catch (e) { + // console.log(e); + // } + + // } + + let timeStamp = new Date(entry.tweet.created_at); + let tweetText = this.getFixedTweetText(entry); + let newPost = new Post('bobbydigitales', userID, tweetText, timeStamp, imageData, 'twitter', entry); + + postsTestData.push(newPost); + + count++; + if (count % 100 === 0) { + log(`Imported ${count} posts...`); + // render(postsTestData); + } + + // if (count == 100-1) { + // break; + // } + + } + return postsTestData; } - - postButton.addEventListener("click", () => { - addPost(userID, posts, postText.value); - postText.value = ""; - }); - -} - -async function loadPosts(userID: string) { - - timerStart(); - let posts: any = await getData(userID, new Date(2022, 8), new Date()); - - if (posts.length > 0) { - log(`Loaded ${posts.length} posts in ${timerDelta().toFixed(2)}ms`); + + async createTestData3(userID: string) { + let posts = await (await (fetch('./posts.json'))).json(); + return posts; } - - posts = await createTestData2(userID); - - log("Adding test data..."); - addDataArray(userID, posts); - return await getData(userID, new Date(2022, 8), new Date()); -} - -async function main() { - let posts: Post[] = []; - let time = 0; `` - let delta = 0; - - let urlParams = (new URL(window.location.href)).searchParams; - - if (urlParams.get("sw") === "true") { - let registration = await registerServiceWorker(); - } - - let userID = getUserID(); - log(`Your user ID is: ${userID}`); - - if (navigator.storage && navigator.storage.persist && !navigator.storage.persisted) { - const isPersisted = await navigator.storage.persist(); - log(`Persisted storage granted: ${isPersisted}`); - } - - log(`Persisted: ${(await navigator?.storage?.persisted())?.toString()}`); - - initMarkdown(); - - // let main = await fetch("/main.js"); - // let code = await main.text(); - // console.log(code); - // registration.active.postMessage({type:"updateMain", code:code}); - - posts = await loadPosts(userID); - - let websocket = connectWebsocket(userID); - initOffline(); - initButtons(userID, posts); - // debugger; - - timerStart(); - render(posts); - let renderTime = timerDelta(); - - log(`render took: ${renderTime.toFixed(2)}ms`); - - log(`memory used: ${((performance as any).memory.usedJSHeapSize / 1024 / 1024).toFixed(2)}Mb`) -} - -function render(posts: Post[]) { - const fragment = document.createDocumentFragment(); - let contentDiv = document.getElementById("content"); - if (!contentDiv) { - throw new Error(); - } - contentDiv.innerHTML = ""; - let count = 0; - - - for (let i = posts.length - 1; i >= 0; i--) { - let postData = posts[i]; - - let post = renderPost(postData); - - if (post) { - fragment.appendChild(post); - count++; + + async registerServiceWorker() { + if (!("serviceWorker" in navigator)) { + return; } - if (count > 100) { - break; + + let registrations = await navigator.serviceWorker.getRegistrations(); + if (registrations.length > 0) { + console.log("Service worker already registered."); + return registrations[0]; } + + navigator.serviceWorker + .register("/sw.js") + .then((registration) => { + console.log("Service Worker registered with scope:", registration.scope); + return registration; + }) + .catch((error) => { + console.error("Service Worker registration failed:", error); + }); + } + + addPost(userID: string, posts: Post[], postText: string) { + if ((typeof postText !== "string") || postText.length === 0) { + log("Not posting an empty string...") + return; + } + + let post = new Post(`bobbydigitales`, userID, postText, new Date()); + + posts.push(post); + // localStorage.setItem(key, JSON.stringify(posts)); + addData(userID, post) + + this.render(posts); + } + + + getPeerID() { + let id = localStorage.getItem("peer_id"); + + if (!id) { + id = generateID(); + localStorage.setItem("peer_id", id); + } + + return id; + } + + getUserID() { + let id = localStorage.getItem("dandelion_id"); + + if (!id) { + id = generateID(); + localStorage.setItem("dandelion_id", id); + } + + return id; } + setFont(fontName: string, fontSize: string) { - if (!contentDiv) { - throw new Error("Couldn't get content div!"); + let content = document.getElementById('content'); + + if (!content) { + return; + } + + content.style.fontFamily = fontName; + content.style.fontSize = fontSize; + + let textArea = document.getElementById('textarea_post'); + if (!textArea) { + return; + } + + textArea.style.fontFamily = fontName; + textArea.style.fontSize = fontSize; } - - contentDiv.appendChild(fragment); - -} - -function renderPost(post: Post) { - if (!(post.hasOwnProperty("text"))) { - throw new Error("Post is malformed!"); + + initOffline(connection: wsConnection) { + // Event listener for going offline + window.addEventListener('offline', () => { + log("offline") + }); + + // Event listener for going online + window.addEventListener('online', () => { + log("online") + connection.connect(); + + }); + + log(`Online status: ${navigator.onLine ? "online" : "offline"}`) + } - let containerDiv = document.createElement("div"); - let textDiv = document.createElement("div"); - let timestampDiv = document.createElement("div"); - let hr = document.createElement("hr"); + + selectFile(contentType: string): Promise { + return new Promise(resolve => { + let input = document.createElement('input'); + input.type = 'file'; + // input.multiple = multiple; + input.accept = contentType; + + input.onchange = () => { + if (input.files == null) { + resolve(null); + return; + } + + let files = Array.from(input.files); + + // if (multiple) + // resolve(files); + // else + resolve(files[0]); + }; + + input.click(); + }); + } + + readFile(file: File): Promise { + // Always return a Promise + return new Promise((resolve, reject) => { + let content = ''; + const reader = new FileReader(); + // Wait till complete + reader.onloadend = function (e: any) { + content = e.target.result; + resolve(content); + }; + // Make sure to handle error states + reader.onerror = function (e: any) { + reject(e); + }; + reader.readAsText(file); + }); + } + + initButtons(userID: string, posts: Post[], registration: ServiceWorkerRegistration | undefined) { + let font1Button = document.getElementById("button_font1") as HTMLButtonElement; + let font2Button = document.getElementById("button_font2") as HTMLButtonElement; + let importTweetsButton = document.getElementById("import_tweets") as HTMLButtonElement; + let clearPostsButton = document.getElementById("clear_posts") as HTMLButtonElement; + let updateApp = document.getElementById("update_app") as HTMLButtonElement; + let ddlnLogoButton = document.getElementById('ddln-logo-button') as HTMLDivElement; + + font1Button.addEventListener('click', () => { this.setFont('Bookerly', '16px') }); + font2Button.addEventListener('click', () => { this.setFont('Virgil', '16px') }); + importTweetsButton.addEventListener('click', async () => { + let file = await this.selectFile('text/*'); + + console.log(file); + if (file == null) { + return; + } + + let tweetData = await this.readFile(file); + tweetData = tweetData.replace('window.YTD.tweets.part0 = ', ''); + const tweets = JSON.parse(tweetData); + + let imported_posts = await this.importTweetArchive(userID, tweets); + clearData(userID); + // posts = posts.reverse(); + addDataArray(userID, imported_posts); + posts = await this.loadPosts(userID) ?? []; + this.render(posts); + + }); + + clearPostsButton.addEventListener('click', () => { clearData(userID); posts = []; this.render(posts) }); + + + let postButton = document.getElementById("button_post") as HTMLButtonElement; + let postText = document.getElementById("textarea_post") as HTMLTextAreaElement; + + if (!(postButton && postText)) { + throw new Error(); + } + + postButton.addEventListener("click", () => { + this.addPost(userID, posts, postText.value); + postText.value = ""; + }); + + updateApp.addEventListener("click", () => { + registration?.active?.postMessage({ type: "update_app" }); + }); + + let infoElement = document.getElementById('info'); + + if (infoElement === null) { + return; + } + + ddlnLogoButton.addEventListener('click', ()=>{infoElement.style.display=='none'? infoElement.style.display='block' : infoElement.style.display='none';}); + } + + async loadPosts(userID: string) { + + this.timerStart(); + let posts: any = await getData(userID, new Date(2022, 8), new Date()); + + if (posts.length > 0) { + log(`Loaded ${posts.length} posts in ${this.timerDelta().toFixed(2)}ms`); + return posts; + } + + // posts = await createTestData2(userID); + + // log("Adding test data..."); + // addDataArray(userID, posts); + // return await getData(userID, new Date(2022, 8), new Date()); + } + + async main() { + let urlParams = (new URL(window.location.href)).searchParams; + let connection_userID = urlParams.get('connect'); - textDiv.innerHTML = marked.parse(post.text); - // textDiv.innerHTML = DOMPurify.sanitize(marked.parse(post.text)); + let registration = undefined; + if (urlParams.get("sw") === "true") { + registration = await this.registerServiceWorker(); + } - timestampDiv.innerText = `${post.post_timestamp.toDateString()}`; - timestampDiv.title = `${post.post_timestamp.toLocaleTimeString()} · ${post.post_timestamp.toDateString()}` - containerDiv.appendChild(hr); - containerDiv.appendChild(textDiv); + if (connection_userID) { + console.log('connect', connection_userID); + localStorage.setItem("dandelion_id", connection_userID); + } - if (!("image_data" in post && post.image_data)) { - containerDiv.appendChild(timestampDiv); + let posts: Post[] = []; + + let userID = this.getUserID(); + let peerID = this.getPeerID(); + this.userID = userID; + this.peerID = peerID; + + log(`user:${userID} peer:${peerID}`); + let websocket = new wsConnection(userID, peerID); + window.addEventListener('beforeunload', () => { websocket.disconnect() }) + this.initOffline(websocket); + this.initButtons(userID, posts, registration); + + let time = 0; + let delta = 0; + if (navigator.storage && navigator.storage.persist && !navigator.storage.persisted) { + debugger; + const isPersisted = await navigator.storage.persist(); + log(`Persisted storage granted: ${isPersisted}`); + } + + log(`Persisted: ${(await navigator?.storage?.persisted())?.toString()}`); + + this.initMarkdown(); + + // let main = await fetch("/main.js"); + // let code = await main.text(); + // console.log(code); + // registration.active.postMessage({type:"updateMain", code:code}); + + posts = await this.loadPosts(userID) ?? []; + + // debugger; + + this.timerStart(); + this.render(posts); // , (postID:string)=>{this.deletePost(userID, postID)} + let renderTime = this.timerDelta(); + + log(`render took: ${renderTime.toFixed(2)}ms`); + + if ((performance as any)?.memory) { + log(`memory used: ${((performance as any).memory.usedJSHeapSize / 1024 / 1024).toFixed(2)}Mb`) + } + + + // const client = new WebTorrent() + + // // Sintel, a free, Creative Commons movie + // const torrentId = 'magnet:?xt=urn:btih:6091e199a8d9272a40dd9a25a621a5c355d6b0be&dn=WING+IT!+-+Blender+Open+Movie+1080p.mp4&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337'; + + // client.add(torrentId, function (torrent: any) { + // // Torrents can contain many files. Let's use the .mp4 file + // const file = torrent.files.find(function (file: any) { + // return file.name.endsWith('.mp4') + // }) + + // // Display the file by adding it to the DOM. + // // Supports video, audio, image files, and more! + // file.appendTo(document.getElementById('torrent-content')); + // }) + } + + render(posts: Post[]) { + const fragment = document.createDocumentFragment(); + let contentDiv = document.getElementById("content"); + if (!contentDiv) { + throw new Error(); + } + contentDiv.innerHTML = ""; + let count = 0; + + + new QRCode(document.getElementById('qrcode'), `https://ddlion.net/?connect=${this.userID}`); + + for (let i = posts.length - 1; i >= 0; i--) { + let postData = posts[i]; + + let post = this.renderPost(postData, posts); + + if (post) { + fragment.appendChild(post); + count++; + } + if (count > 100) { + break; + } + } + + + if (!contentDiv) { + throw new Error("Couldn't get content div!"); + } + + contentDiv.appendChild(fragment); + + } + + deletePost(userID:string, postID:string) { + deleteData(userID, postID) + } + + renderPost(post: Post, posts:Post[]) { + if (!(post.hasOwnProperty("text"))) { + throw new Error("Post is malformed!"); + } + let containerDiv = document.createElement("div"); + + let timestamp = `${post.post_timestamp.toLocaleTimeString()} · ${post.post_timestamp.toLocaleDateString()}`; + + let deleteButton = document.createElement('button'); + deleteButton.innerText = 'delete'; + // deleteButton.onclick = ()=>{deletefunc(post.post_id)}; + + let postTemplate = + `

    +
    @${post.author} - ${post.post_timestamp.toLocaleDateString()}
    +
    ${marked.parse(post.text)}
    +
    ` + + containerDiv.innerHTML = postTemplate; + + containerDiv.appendChild(deleteButton); + + // if (!("image_data" in post && post.image_data)) { + // containerDiv.appendChild(timestampDiv); + // return containerDiv; + // // return null; + // } + + // let image = document.createElement("img"); + // const blob = new Blob([post.image_data as ArrayBuffer], { type: 'image/jpg' }); + // const url = URL.createObjectURL(blob); + // image.onload = () => { + // URL.revokeObjectURL(url); + // }; + + + + + // image.src = url; + // // image.src = image.src = "data:image/png;base64," + post.image; + // image.className = "postImage"; + + // containerDiv.appendChild(image); + // containerDiv.appendChild(timestampDiv); + return containerDiv; - // return null; } - let image = document.createElement("img"); - const blob = new Blob([post.image_data as ArrayBuffer], { type: 'image/jpg' }); - const url = URL.createObjectURL(blob); - image.onload = () => { - URL.revokeObjectURL(url); - }; - - - image.src = url; - // image.src = image.src = "data:image/png;base64," + post.image; - image.className = "postImage"; - - containerDiv.appendChild(image); - containerDiv.appendChild(timestampDiv); - - return containerDiv; } -window.addEventListener("load", main); +let app = new App(); + +window.addEventListener("load", app.main.bind(app)); diff --git a/src/webRTC.ts b/src/webRTC.ts new file mode 100644 index 0000000..06c4926 --- /dev/null +++ b/src/webRTC.ts @@ -0,0 +1,83 @@ +const config = { + iceServers: [{ urls: "stun: stun.l.google.com" }], +}; + +let localConnection = new RTCPeerConnection(); + +function handleSendChannelStatusChange() { + console.log(handleSendChannelStatusChange); +} + +let sendChannel = localConnection.createDataChannel("sendChannel"); +sendChannel.onopen = handleSendChannelStatusChange; +sendChannel.onclose = handleSendChannelStatusChange; + + +let remoteConnection = new RTCPeerConnection(); +remoteConnection.ondatachannel = receiveChannelCallback; + + +localConnection.onicecandidate = (e:any) => + !e.candidate || + remoteConnection.addIceCandidate(e.candidate).catch(handleAddCandidateError); + +remoteConnection.onicecandidate = (e) => + !e.candidate || + localConnection.addIceCandidate(e.candidate).catch(handleAddCandidateError); + + + +function handleCreateDescriptionError(error:any) { + console.log(`Unable to create an offer: ${error.toString()}`); + } + + function handleLocalAddCandidateSuccess() { + console.log('handleLocalAddCandidateSuccess'); + } + + function handleRemoteAddCandidateSuccess() { + console.log('handleRemoteAddCandidateSuccess'); + + } + + function handleAddCandidateError() { + console.log("Oh noes! addICECandidate failed!"); + } + +localConnection + .createOffer() + .then((offer) => localConnection.setLocalDescription(offer)) + .then(() => + remoteConnection.setRemoteDescription(localConnection.localDescription as RTCSessionDescriptionInit), + ) + .then(() => remoteConnection.createAnswer()) + .then((answer) => remoteConnection.setLocalDescription(answer)) + .then(() => + localConnection.setRemoteDescription(remoteConnection.localDescription as RTCSessionDescriptionInit), + ) + .catch(handleCreateDescriptionError); + + function handleReceiveChannelStatusChange(event:any) { + let receiveChannel = event.channel; + + if (receiveChannel) { + console.log( + `Receive channel's status has changed to ${receiveChannel.readyState}`, + ); + } + } + + function receiveChannelCallback(event:any) { + let receiveChannel = event.channel; + receiveChannel.onmessage = handleReceiveMessage; + receiveChannel.onopen = handleReceiveChannelStatusChange; + receiveChannel.onclose = handleReceiveChannelStatusChange; + } + + function sendMessage(message:string) { + sendChannel.send(message); + } + + function handleReceiveMessage(event:any) { + console.log(event.data); + } \ No newline at end of file diff --git a/webRTC.js b/webRTC.js new file mode 100644 index 0000000..35a03e6 --- /dev/null +++ b/webRTC.js @@ -0,0 +1,56 @@ +"use strict"; +const config = { + iceServers: [{ urls: "stun: stun.l.google.com" }], +}; +let localConnection = new RTCPeerConnection(); +function handleSendChannelStatusChange() { + console.log(handleSendChannelStatusChange); +} +let sendChannel = localConnection.createDataChannel("sendChannel"); +sendChannel.onopen = handleSendChannelStatusChange; +sendChannel.onclose = handleSendChannelStatusChange; +let remoteConnection = new RTCPeerConnection(); +remoteConnection.ondatachannel = receiveChannelCallback; +localConnection.onicecandidate = (e) => !e.candidate || + remoteConnection.addIceCandidate(e.candidate).catch(handleAddCandidateError); +remoteConnection.onicecandidate = (e) => !e.candidate || + localConnection.addIceCandidate(e.candidate).catch(handleAddCandidateError); +function handleCreateDescriptionError(error) { + console.log(`Unable to create an offer: ${error.toString()}`); +} +function handleLocalAddCandidateSuccess() { + console.log('handleLocalAddCandidateSuccess'); +} +function handleRemoteAddCandidateSuccess() { + console.log('handleRemoteAddCandidateSuccess'); +} +function handleAddCandidateError() { + console.log("Oh noes! addICECandidate failed!"); +} +localConnection + .createOffer() + .then((offer) => localConnection.setLocalDescription(offer)) + .then(() => remoteConnection.setRemoteDescription(localConnection.localDescription)) + .then(() => remoteConnection.createAnswer()) + .then((answer) => remoteConnection.setLocalDescription(answer)) + .then(() => localConnection.setRemoteDescription(remoteConnection.localDescription)) + .catch(handleCreateDescriptionError); +function handleReceiveChannelStatusChange(event) { + let receiveChannel = event.channel; + if (receiveChannel) { + console.log(`Receive channel's status has changed to ${receiveChannel.readyState}`); + } +} +function receiveChannelCallback(event) { + let receiveChannel = event.channel; + receiveChannel.onmessage = handleReceiveMessage; + receiveChannel.onopen = handleReceiveChannelStatusChange; + receiveChannel.onclose = handleReceiveChannelStatusChange; +} +function sendMessage(message) { + sendChannel.send(message); +} +function handleReceiveMessage(event) { + console.log(event.data); +} +//# sourceMappingURL=webRTC.js.map \ No newline at end of file diff --git a/webRTC.js.map b/webRTC.js.map new file mode 100644 index 0000000..424d211 --- /dev/null +++ b/webRTC.js.map @@ -0,0 +1 @@ +{"version":3,"file":"webRTC.js","sourceRoot":"","sources":["src/webRTC.ts"],"names":[],"mappings":"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"} \ No newline at end of file

    atXyvV`f)$tBS;*bWqxQ&<1b4rHgEmG0w&b}1<6 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�bZOc-1_T$_;t0n2vk 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 Z;WyKv#U!Ke2L4_5y`-WDandelion - + + + + + + @@ -124,15 +170,29 @@