@datagrok/peptides 1.17.19 → 1.17.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/111.js +2 -0
- package/dist/{436.js → 216.js} +2 -2
- package/dist/501.js +2 -0
- package/dist/603.js +2 -0
- package/dist/682.js +2 -0
- package/dist/705.js +2 -0
- package/dist/778.js +2 -0
- package/dist/795.js +2 -0
- package/dist/950.js +2 -0
- package/dist/package-test.js +2 -2
- package/dist/package.js +2 -2
- package/package.json +13 -13
- package/src/utils/misc.ts +2 -2
- package/src/widgets/peptides.ts +7 -7
- package/src/widgets/settings.ts +4 -4
- package/dist/23.js +0 -2
- package/dist/282.js +0 -2
- package/dist/301.js +0 -2
- package/dist/356.js +0 -2
- package/dist/40.js +0 -2
- package/dist/427.js +0 -2
- package/dist/748.js +0 -2
- package/dist/796.js +0 -2
package/CHANGELOG.md
CHANGED
package/dist/111.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var peptides;(()=>{"use strict";var e,t,r={4111:(e,t,r)=>{var n=r(6066);const o=e=>null==e;var a=r(7114),s=r(8774);onmessage=async e=>{const{values:t,startIdx:r,endIdx:i,threshold:p,fnNames:c,opts:l,aggregationMethod:h,weights:u}=e.data;try{const e=[],f=[],g=[],v=i-r,d=function(e,t){return e===n.G.MANHATTAN?e=>e.reduce(((e,r,n)=>e+r*t[n]),0):e=>{const r=e.reduce(((e,r,n)=>e+(r*t[n])**2),0);return Math.sqrt(r)}}(h,u);t.forEach(((e,r)=>{if((0,a.lW)(c[r]))for(let n=0;n<e.length;++n)o(e[n])||(t[r][n]=new s.A(t[r][n]._data,t[r][n]._length))}));let w=0;const y=new Array(c.length).fill(null).map(((e,t)=>new a.t$(c[t]).getMeasure(l[t]))),b=t[0].length-2-Math.floor(Math.sqrt(-8*r+4*t[0].length*(t[0].length-1)-7)/2-.5),m=r-t[0].length*b+Math.floor((b+1)*(b+2)/2);let x=b,O=m;for(;w<v;){const r=y.map(((e,r)=>o(t[r][x])||o(t[r][O])?1:e(t[r][x],t[r][O]))),n=1===r.length?r[0]:d(r);1-n>=p&&(e.push(x),f.push(O),g.push(n)),w++,O++,O===t[0].length&&(x++,O=x+1)}const A=new Int32Array(e),M=new Int32Array(f),j=new Float32Array(g);postMessage({i:A,j:M,distance:j})}catch(e){postMessage({error:e})}}}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.m=r,o.x=()=>{var e=o.O(void 0,[501],(()=>o(4111)));return o.O(e)},e=[],o.O=(t,r,n,a)=>{if(!r){var s=1/0;for(l=0;l<e.length;l++){for(var[r,n,a]=e[l],i=!0,p=0;p<r.length;p++)(!1&a||s>=a)&&Object.keys(o.O).every((e=>o.O[e](r[p])))?r.splice(p--,1):(i=!1,a<s&&(s=a));if(i){e.splice(l--,1);var c=n();void 0!==c&&(t=c)}}return t}a=a||0;for(var l=e.length;l>0&&e[l-1][2]>a;l--)e[l]=e[l-1];e[l]=[r,n,a]},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((t,r)=>(o.f[r](e,t),t)),[])),o.u=e=>e+".js",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={111:1};o.f.i=(t,r)=>{e[t]||importScripts(o.p+o.u(t))};var t=self.webpackChunkpeptides=self.webpackChunkpeptides||[],r=t.push.bind(t);t.push=t=>{var[n,a,s]=t;for(var i in a)o.o(a,i)&&(o.m[i]=a[i]);for(s&&s(o);n.length;)e[n.pop()]=1;r(t)}})(),t=o.x,o.x=()=>o.e(501).then(t);var a=o.x();peptides=a})();
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UixLQUFhQSxFQUFZTSxFQUFRakcsS0FBS2dHLEdBRTNGLENBSUQsSUFBS0wsRUFBVyxNQUFNLElBQUlTLE1BQU0seURBQ2hDVCxFQUFZQSxFQUFVVSxRQUFRLE9BQVEsSUFBSUEsUUFBUSxRQUFTLElBQUlBLFFBQVEsWUFBYSxLQUNwRnRELEVBQW9CdUQsRUFBSVgsQyxXQ2R4QixJQUFJWSxFQUFrQixDQUNyQixJQUFLLEdBZ0JOeEQsRUFBb0I0QixFQUFFM0UsRUFBSSxDQUFDNEUsRUFBU0csS0FFL0J3QixFQUFnQjNCLElBRWxCZ0IsY0FBYzdDLEVBQW9CdUQsRUFBSXZELEVBQW9CaUMsRUFBRUosR0FFOUQsRUFHRCxJQUFJNEIsRUFBcUJDLEtBQTJCLHFCQUFJQSxLQUEyQixzQkFBSyxHQUNwRkMsRUFBNkJGLEVBQW1CcEUsS0FBS3VFLEtBQUtILEdBQzlEQSxFQUFtQnBFLEtBdkJDckMsSUFDbkIsSUFBSzJELEVBQVVrRCxFQUFhQyxHQUFXOUcsRUFDdkMsSUFBSSxJQUFJaUQsS0FBWTRELEVBQ2hCN0QsRUFBb0J3QixFQUFFcUMsRUFBYTVELEtBQ3JDRCxFQUFvQk8sRUFBRU4sR0FBWTRELEVBQVk1RCxJQUloRCxJQURHNkQsR0FBU0EsRUFBUTlELEdBQ2RXLEVBQVN4QyxRQUNkcUYsRUFBZ0I3QyxFQUFTb0QsT0FBUyxFQUNuQ0osRUFBMkIzRyxFQUFLLEMsS1ZuQjdCZCxFQUFPOEQsRUFBb0I1RCxFQUMvQjRELEVBQW9CNUQsRUFBSSxJQUNoQjRELEVBQW9CSCxFQUFFLEtBQUttRSxLQUFLOUgsR1dEeEMsSUFBSXNFLEVBQXNCUixFQUFvQjVELEkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvY2h1bmsgbG9hZGVkIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9zdGFydHVwIGNodW5rIGRlcGVuZGVuY2llcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvZGlzdGFuY2UtbWF0cml4L3NwYXJzZS1tYXRyaXgtd29ya2VyLmpzIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvZW5zdXJlIGNodW5rIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9nZXQgamF2YXNjcmlwdCBjaHVuayBmaWxlbmFtZSIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGgiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2ltcG9ydFNjcmlwdHMgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3N0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRlZmVycmVkID0gW107XG5fX3dlYnBhY2tfcmVxdWlyZV9fLk8gPSAocmVzdWx0LCBjaHVua0lkcywgZm4sIHByaW9yaXR5KSA9PiB7XG5cdGlmKGNodW5rSWRzKSB7XG5cdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuXHRcdGZvcih2YXIgaSA9IGRlZmVycmVkLmxlbmd0aDsgaSA+IDAgJiYgZGVmZXJyZWRbaSAtIDFdWzJdID4gcHJpb3JpdHk7IGktLSkgZGVmZXJyZWRbaV0gPSBkZWZlcnJlZFtpIC0gMV07XG5cdFx0ZGVmZXJyZWRbaV0gPSBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV07XG5cdFx0cmV0dXJuO1xuXHR9XG5cdHZhciBub3RGdWxmaWxsZWQgPSBJbmZpbml0eTtcblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBbY2h1bmtJZHMsIGZuLCBwcmlvcml0eV0gPSBkZWZlcnJlZFtpXTtcblx0XHR2YXIgZnVsZmlsbGVkID0gdHJ1ZTtcblx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRpZiAoKHByaW9yaXR5ICYgMSA9PT0gMCB8fCBub3RGdWxmaWxsZWQgPj0gcHJpb3JpdHkpICYmIE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uTykuZXZlcnkoKGtleSkgPT4gKF9fd2VicGFja19yZXF1aXJlX18uT1trZXldKGNodW5rSWRzW2pdKSkpKSB7XG5cdFx0XHRcdGNodW5rSWRzLnNwbGljZShqLS0sIDEpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZnVsZmlsbGVkID0gZmFsc2U7XG5cdFx0XHRcdGlmKHByaW9yaXR5IDwgbm90RnVsZmlsbGVkKSBub3RGdWxmaWxsZWQgPSBwcmlvcml0eTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoZnVsZmlsbGVkKSB7XG5cdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuXHRcdFx0dmFyIHIgPSBmbigpO1xuXHRcdFx0aWYgKHIgIT09IHVuZGVmaW5lZCkgcmVzdWx0ID0gcjtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn07IiwidmFyIG5leHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLng7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnggPSAoKSA9PiB7XG5cdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fLmUoNTAxKS50aGVuKG5leHQpO1xufTsiLCJpbXBvcnQgeyBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcyB9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IGNvbnN0IGlzTmlsID0gKHgpID0+IHggPT09IG51bGwgfHwgeCA9PT0gdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydFNtYWxsZXIoZGlzdGFuY2VzQXIsIGluZGV4ZXMsIG51bSwgaW5kZXgpIHtcbiAgICBpZiAobnVtID4gZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoIC0gMV0pXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtIDwgdik7XG4gICAgZGlzdGFuY2VzQXIucG9wKCk7XG4gICAgZGlzdGFuY2VzQXIuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBudW0pO1xuICAgIGluZGV4ZXMucG9wKCk7XG4gICAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRMYXJnZXIoZGlzdGFuY2VzQXIsIGluZGV4ZXMsIG51bSwgaW5kZXgpIHtcbiAgICBpZiAobnVtIDwgZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoIC0gMV0pXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtID4gdik7XG4gICAgZGlzdGFuY2VzQXIucG9wKCk7XG4gICAgZGlzdGFuY2VzQXIuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBudW0pO1xuICAgIGluZGV4ZXMucG9wKCk7XG4gICAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uKGFnZ3JlZ2F0aW9uTWV0aG9kLCB3ZWlnaHRzKSB7XG4gICAgc3dpdGNoIChhZ2dyZWdhdGlvbk1ldGhvZCkge1xuICAgICAgICBjYXNlIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzLk1BTkhBVFRBTjpcbiAgICAgICAgICAgIHJldHVybiAodnMpID0+IHZzLnJlZHVjZSgoYWNjLCB2YWwsIGlkeCkgPT4gYWNjICsgdmFsICogd2VpZ2h0c1tpZHhdLCAwKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAodnMpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBldWNsaWRlYW5cbiAgICAgICAgICAgICAgICBjb25zdCBzdW0gPSB2cy5yZWR1Y2UoKGFjYywgdmFsLCBpZHgpID0+IGFjYyArICh2YWwgKiB3ZWlnaHRzW2lkeF0pICoqIDIsIDApO1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLnNxcnQoc3VtKTtcbiAgICAgICAgICAgIH07XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFhScGJITXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMWRHbHNjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFUUkNMREJDUVVFd1FpeEZRVUZETEUxQlFVMHNVMEZCVXl4RFFVRkRPMEZCUlRsRkxFMUJRVTBzUTBGQlF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1UwRkJVeXhEUVVGRE8wRkJSUzlFTEUxQlFVMHNWVUZCVlN4aFFVRmhMRU5CUVVNc1YwRkJjVUlzUlVGQlJTeFBRVUZwUWl4RlFVRkZMRWRCUVZjc1JVRkJSU3hMUVVGaE8wbEJRMmhITEVsQlFVa3NSMEZCUnl4SFFVRkhMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zVFVGQlRTeEhRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjZReXhQUVVGUE8wbEJSVlFzVFVGQlRTeFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRekZFTEZkQlFWY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOc1FpeFhRVUZYTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEZUVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzBsQlEyUXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTNoRExFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNXVUZCV1N4RFFVRkRMRmRCUVhGQ0xFVkJRVVVzVDBGQmFVSXNSVUZCUlN4SFFVRlhMRVZCUVVVc1MwRkJZVHRKUVVNdlJpeEpRVUZKTEVkQlFVY3NSMEZCUnl4WFFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRExFMUJRVTBzUjBGQlF5eERRVUZETEVOQlFVTTdVVUZEZWtNc1QwRkJUenRKUVVWVUxFMUJRVTBzVjBGQlZ5eEhRVUZITEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNeFJDeFhRVUZYTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRiRUlzVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEzaERMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5rTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTjRReXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhOQ1FVRnpRaXhEUVVOd1F5eHBRa0ZCTkVNc1JVRkJSU3hQUVVGcFFqdEpRVVV2UkN4UlFVRlJMR2xDUVVGcFFpeEZRVUZGTEVOQlFVTTdVVUZETVVJc1MwRkJTeXd3UWtGQk1FSXNRMEZCUXl4VFFVRlRPMWxCUTNaRExFOUJRVThzUTBGQlF5eEZRVUZaTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY2tZN1dVRkRSU3hQUVVGUExFTkJRVU1zUlVGQldTeEZRVUZGTEVWQlFVVTdaMEpCUTNSQ0xGbEJRVms3WjBKQlExb3NUVUZCVFN4SFFVRkhMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU0zUlN4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEZUVJc1EwRkJReXhEUVVGRE8wbEJRMDRzUTBGQlF6dEJRVU5JTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMFJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUXNJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpmU0JtY205dElDY3VMM1I1Y0dWekp6dGNibHh1Wlhod2IzSjBJR052Ym5OMElHbHpUbWxzSUQwZ0tIZzZJR0Z1ZVNrZ1BUNGdlQ0E5UFQwZ2JuVnNiQ0I4ZkNCNElEMDlQU0IxYm1SbFptbHVaV1E3WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGJuTmxjblJUYldGc2JHVnlLR1JwYzNSaGJtTmxjMEZ5T2lCdWRXMWlaWEpiWFN3Z2FXNWtaWGhsY3pvZ2JuVnRZbVZ5VzEwc0lHNTFiVG9nYm5WdFltVnlMQ0JwYm1SbGVEb2diblZ0WW1WeUtTQjdYRzRnSUdsbUlDaHVkVzBnUGlCa2FYTjBZVzVqWlhOQmNsdGthWE4wWVc1alpYTkJjaTVzWlc1bmRHZ3RNVjBwWEc0Z0lDQWdjbVYwZFhKdU8xeHVYRzRnSUdOdmJuTjBJRzVsZDFCdmMybDBhVzl1SUQwZ1pHbHpkR0Z1WTJWelFYSXVabWx1WkVsdVpHVjRLQ2gyS1NBOVBpQnVkVzBnUENCMktUdGNiaUFnWkdsemRHRnVZMlZ6UVhJdWNHOXdLQ2s3WEc0Z0lHUnBjM1JoYm1ObGMwRnlMbk53YkdsalpTaHVaWGRRYjNOcGRHbHZiaXdnTUN3Z2JuVnRLVHRjYmlBZ2FXNWtaWGhsY3k1d2IzQW9LVHRjYmlBZ2FXNWtaWGhsY3k1emNHeHBZMlVvYm1WM1VHOXphWFJwYjI0c0lEQXNJR2x1WkdWNEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdsdWMyVnlkRXhoY21kbGNpaGthWE4wWVc1alpYTkJjam9nYm5WdFltVnlXMTBzSUdsdVpHVjRaWE02SUc1MWJXSmxjbHRkTENCdWRXMDZJRzUxYldKbGNpd2dhVzVrWlhnNklHNTFiV0psY2lrZ2UxeHVJQ0JwWmlBb2JuVnRJRHdnWkdsemRHRnVZMlZ6UVhKYlpHbHpkR0Z1WTJWelFYSXViR1Z1WjNSb0xURmRLVnh1SUNBZ0lISmxkSFZ5Ymp0Y2JseHVJQ0JqYjI1emRDQnVaWGRRYjNOcGRHbHZiaUE5SUdScGMzUmhibU5sYzBGeUxtWnBibVJKYm1SbGVDZ29kaWtnUFQ0Z2JuVnRJRDRnZGlrN1hHNGdJR1JwYzNSaGJtTmxjMEZ5TG5CdmNDZ3BPMXh1SUNCa2FYTjBZVzVqWlhOQmNpNXpjR3hwWTJVb2JtVjNVRzl6YVhScGIyNHNJREFzSUc1MWJTazdYRzRnSUdsdVpHVjRaWE11Y0c5d0tDazdYRzRnSUdsdVpHVjRaWE11YzNCc2FXTmxLRzVsZDFCdmMybDBhVzl1TENBd0xDQnBibVJsZUNrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuWlhSQloyZHlaV2RoZEdsdmJrWjFibU4wYVc5dUtGeHVJQ0JoWjJkeVpXZGhkR2x2YmsxbGRHaHZaRG9nUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ3dnZDJWcFoyaDBjem9nYm5WdFltVnlXMTFjYmlrNklDaDJZV3gxWlhNNklHNTFiV0psY2x0ZEtTQTlQaUJ1ZFcxaVpYSWdlMXh1SUNCemQybDBZMmdnS0dGblozSmxaMkYwYVc5dVRXVjBhRzlrS1NCN1hHNGdJQ0FnWTJGelpTQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a2N5NU5RVTVJUVZSVVFVNDZYRzRnSUNBZ0lDQnlaWFIxY200Z0tIWnpPaUJ1ZFcxaVpYSmJYU2tnUFQ0Z2RuTXVjbVZrZFdObEtDaGhZMk1zSUhaaGJDd2dhV1I0S1NBOVBpQmhZMk1nS3lCMllXd2dLaUIzWldsbmFIUnpXMmxrZUYwc0lEQXBPMXh1SUNBZ0lHUmxabUYxYkhRNlhHNGdJQ0FnSUNCeVpYUjFjbTRnS0haek9pQnVkVzFpWlhKYlhTa2dQVDRnZTF4dUlDQWdJQ0FnSUNBdkx5QmxkV05zYVdSbFlXNWNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MzVnRJRDBnZG5NdWNtVmtkV05sS0NoaFkyTXNJSFpoYkN3Z2FXUjRLU0E5UGlCaFkyTWdLeUFvZG1Gc0lDb2dkMlZwWjJoMGMxdHBaSGhkS1NBcUtpQXlMQ0F3S1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUUxaGRHZ3VjM0Z5ZENoemRXMHBPMXh1SUNBZ0lDQWdmVHRjYmlBZ2ZWeHVmVnh1SWwxOSIsImltcG9ydCB7IGdldEFnZ3JlZ2F0aW9uRnVuY3Rpb24sIGlzTmlsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBNZWFzdXJlLCBpc0JpdEFycmF5TWV0cmljIH0gZnJvbSAnLi4vdHlwZWQtbWV0cmljcyc7XG5pbXBvcnQgQml0QXJyYXkgZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvYml0LWFycmF5Jztcbm9ubWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCB0aHJlc2hvbGQsIGZuTmFtZXMsIG9wdHMsIGFnZ3JlZ2F0aW9uTWV0aG9kLCB3ZWlnaHRzIH0gPSBldmVudC5kYXRhO1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGlmIChzdGFydElkeCAhPSAtMSlcbiAgICAgICAgLy8gICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGluIHNwYXJzZSBtYXRyaXggd29ya2VyJyk7IC8vIFRPRE86IHJlbW92ZSB0aGlzIGxpbmVcbiAgICAgICAgY29uc3QgaSA9IFtdO1xuICAgICAgICBjb25zdCBqID0gW107XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlcyA9IFtdO1xuICAgICAgICBjb25zdCBjaHVua1NpemUgPSBlbmRJZHggLSBzdGFydElkeDtcbiAgICAgICAgLy9jb25zdCBtaSA9IHN0YXJ0Um93O1xuICAgICAgICAvL2NvbnN0IG1qID0gc3RhcnRDb2w7XG4gICAgICAgIGNvbnN0IGFnZ3JlZ2F0ZSA9IGdldEFnZ3JlZ2F0aW9uRnVuY3Rpb24oYWdncmVnYXRpb25NZXRob2QsIHdlaWdodHMpO1xuICAgICAgICB2YWx1ZXMuZm9yRWFjaCgodiwgY29sSWR4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNCaXRBcnJheU1ldHJpYyhmbk5hbWVzW2NvbElkeF0pKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc05pbCh2W2ldKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbY29sSWR4XVtpXSA9IG5ldyBCaXRBcnJheSh2YWx1ZXNbY29sSWR4XVtpXS5fZGF0YSwgdmFsdWVzW2NvbElkeF1baV0uX2xlbmd0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGNudCA9IDA7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlRm5zID0gbmV3IEFycmF5KGZuTmFtZXMubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoXywgaSkgPT4gbmV3IE1lYXN1cmUoZm5OYW1lc1tpXSkuZ2V0TWVhc3VyZShvcHRzW2ldKSk7XG4gICAgICAgIGNvbnN0IHN0YXJ0Um93ID0gdmFsdWVzWzBdLmxlbmd0aCAtIDIgLSBNYXRoLmZsb29yKE1hdGguc3FydCgtOCAqIHN0YXJ0SWR4ICsgNCAqIHZhbHVlc1swXS5sZW5ndGggKiAodmFsdWVzWzBdLmxlbmd0aCAtIDEpIC0gNykgLyAyIC0gMC41KTtcbiAgICAgICAgY29uc3Qgc3RhcnRDb2wgPSBzdGFydElkeCAtIHZhbHVlc1swXS5sZW5ndGggKiBzdGFydFJvdyArIE1hdGguZmxvb3IoKHN0YXJ0Um93ICsgMSkgKiAoc3RhcnRSb3cgKyAyKSAvIDIpO1xuICAgICAgICBsZXQgbWkgPSBzdGFydFJvdztcbiAgICAgICAgbGV0IG1qID0gc3RhcnRDb2w7XG4gICAgICAgIHdoaWxlIChjbnQgPCBjaHVua1NpemUpIHtcbiAgICAgICAgICAgIC8vY29uc3QgdmFsdWUgPSBzZXExTGlzdFttaV0gJiYgc2VxMUxpc3RbbWpdID8gaGFtbWluZyhzZXExTGlzdFttaV0sIHNlcTFMaXN0W21qXSkgOiAwO1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2VWYWx1ZXMgPSBkaXN0YW5jZUZucy5tYXAoKGZuLCBpZHgpID0+ICFpc05pbCh2YWx1ZXNbaWR4XVttaV0pICYmICFpc05pbCh2YWx1ZXNbaWR4XVttal0pID9cbiAgICAgICAgICAgICAgICBmbih2YWx1ZXNbaWR4XVttaV0sIHZhbHVlc1tpZHhdW21qXSkgOiAxKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGlzdGFuY2VWYWx1ZXMubGVuZ3RoID09PSAxID8gZGlzdGFuY2VWYWx1ZXNbMF0gOiBhZ2dyZWdhdGUoZGlzdGFuY2VWYWx1ZXMpO1xuICAgICAgICAgICAgaWYgKDEgLSB2YWx1ZSA+PSB0aHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICBpLnB1c2gobWkpO1xuICAgICAgICAgICAgICAgIGoucHVzaChtaik7XG4gICAgICAgICAgICAgICAgZGlzdGFuY2VzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY250Kys7XG4gICAgICAgICAgICBtaisrO1xuICAgICAgICAgICAgaWYgKG1qID09PSB2YWx1ZXNbMF0ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbWkrKztcbiAgICAgICAgICAgICAgICBtaiA9IG1pICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpQXJyYXkgPSBuZXcgSW50MzJBcnJheShpKTtcbiAgICAgICAgY29uc3QgakFycmF5ID0gbmV3IEludDMyQXJyYXkoaik7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlQXJyYXkgPSBuZXcgRmxvYXQzMkFycmF5KGRpc3RhbmNlcyk7XG4gICAgICAgIHBvc3RNZXNzYWdlKHsgaTogaUFycmF5LCBqOiBqQXJyYXksIGRpc3RhbmNlOiBkaXN0YW5jZUFycmF5IH0pO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICBwb3N0TWVzc2FnZSh7IGVycm9yOiBlIH0pO1xuICAgIH1cbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljM0JoY25ObExXMWhkSEpwZUMxM2IzSnJaWEl1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnpjR0Z5YzJVdGJXRjBjbWw0TFhkdmNtdGxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFVTXNjMEpCUVhOQ0xFVkJRVVVzUzBGQlN5eEZRVUZETEUxQlFVMHNVMEZCVXl4RFFVRkRPMEZCUTNSRUxFOUJRVThzUlVGQlpTeFBRVUZQTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVU1zVFVGQlRTeHJRa0ZCYTBJc1EwRkJRenRCUVVONlJTeFBRVUZQTEZGQlFWRXNUVUZCVFN4NVEwRkJlVU1zUTBGQlF6dEJRVVV2UkN4VFFVRlRMRWRCUVVjc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeEZRVUZGTzBsQlF6RkNMRTFCUVUwc1JVRkJReXhOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEUxQlFVMHNSVUZCUlN4VFFVRlRMRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeHBRa0ZCYVVJc1JVRkJSU3hQUVVGUExFVkJRVU1zUjBGSGJFTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJRenRKUVVNdlJDeEpRVUZKTEVOQlFVTTdVVUZEU0N4elFrRkJjMEk3VVVGRGRFSXNaMFpCUVdkR08xRkJRMmhHTEUxQlFVMHNRMEZCUXl4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVOMlFpeE5RVUZOTEVOQlFVTXNSMEZCWVN4RlFVRkZMRU5CUVVNN1VVRkRka0lzVFVGQlRTeFRRVUZUTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUXk5Q0xFMUJRVTBzVTBGQlV5eEhRVUZITEUxQlFVMHNSMEZCUnl4UlFVRlJMRU5CUVVNN1VVRkRjRU1zYzBKQlFYTkNPMUZCUTNSQ0xITkNRVUZ6UWp0UlFVVjBRaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eHpRa0ZCYzBJc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVWeVJTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFMUJRVTBzUlVGQlJTeEZRVUZGTzFsQlF6TkNMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dG5Ra0ZEZEVNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXp0dlFrRkRiRU1zU1VGQlNTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8zZENRVUZGTEZOQlFWTTdiMEpCUXpGQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkRka1lzUTBGQlF6dFpRVU5JTEVOQlFVTTdVVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTmFMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0Vnc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZEYUVRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UlFVRlJMRWRCUVVjc1EwRkJReXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNeFJpeE5RVUZOTEZGQlFWRXNSMEZCUnl4UlFVRlJMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEZGQlFWRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNeFJ5eEpRVUZKTEVWQlFVVXNSMEZCUnl4UlFVRlJMRU5CUVVNN1VVRkRiRUlzU1VGQlNTeEZRVUZGTEVkQlFVY3NVVUZCVVN4RFFVRkRPMUZCUTJ4Q0xFOUJRVThzUjBGQlJ5eEhRVUZITEZOQlFWTXNSVUZCUlN4RFFVRkRPMWxCUTNaQ0xIVkdRVUYxUmp0WlFVTjJSaXhOUVVGTkxHTkJRV01zUjBGQlJ5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZEVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZETlVNc1RVRkJUU3hMUVVGTExFZEJRVWNzWTBGQll5eERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzFsQlF6RkdMRWxCUVVrc1EwRkJReXhIUVVGSExFdEJRVXNzU1VGQlNTeFRRVUZUTEVWQlFVVXNRMEZCUXp0blFrRkRNMElzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRFdDeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU5ZTEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRGVFSXNRMEZCUXp0WlFVTkVMRWRCUVVjc1JVRkJSU3hEUVVGRE8xbEJRMDRzUlVGQlJTeEZRVUZGTEVOQlFVTTdXVUZEVEN4SlFVRkpMRVZCUVVVc1MwRkJTeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1owSkJRelZDTEVWQlFVVXNSVUZCUlN4RFFVRkRPMmRDUVVOTUxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJRc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGRlJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnFReXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVOc1JDeFhRVUZYTEVOQlFVTXNSVUZCUXl4RFFVRkRMRVZCUVVVc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMR0ZCUVdFc1JVRkJReXhEUVVGRExFTkJRVU03U1VGREwwUXNRMEZCUXp0SlFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFTkJRVU03VVVGRFdDeFhRVUZYTEVOQlFVTXNSVUZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF6dEpRVU14UWl4RFFVRkRPMEZCUTBnc1EwRkJReXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdG5aWFJCWjJkeVpXZGhkR2x2YmtaMWJtTjBhVzl1TENCcGMwNXBiSDBnWm5KdmJTQW5MaTkxZEdsc2N5YzdYRzVwYlhCdmNuUWdlMHR1YjNkdVRXVjBjbWxqY3l3Z1RXVmhjM1Z5WlN3Z2FYTkNhWFJCY25KaGVVMWxkSEpwWTMwZ1puSnZiU0FuTGk0dmRIbHdaV1F0YldWMGNtbGpjeWM3WEc1cGJYQnZjblFnUW1sMFFYSnlZWGtnWm5KdmJTQW5RR1JoZEdGbmNtOXJMV3hwWW5KaGNtbGxjeTkxZEdsc2N5OXpjbU12WW1sMExXRnljbUY1Snp0Y2JtbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkgwZ1puSnZiU0FuTGk5MGVYQmxjeWM3WEc1dmJtMWxjM05oWjJVZ1BTQmhjM2x1WXlBb1pYWmxiblFwSUQwK0lIdGNiaUFnWTI5dWMzUWdlM1poYkhWbGN5d2djM1JoY25SSlpIZ3NJR1Z1WkVsa2VDd2dkR2h5WlhOb2IyeGtMQ0JtYms1aGJXVnpMQ0J2Y0hSekxDQmhaMmR5WldkaGRHbHZiazFsZEdodlpDd2dkMlZwWjJoMGMzMDZYRzRnSUNBZ2UzWmhiSFZsY3pvZ1FYSnlZWGs4WVc1NVcxMCtMQ0J6ZEdGeWRFbGtlRG9nYm5WdFltVnlMQ0JsYm1SSlpIZzZJRzUxYldKbGNpeGNiaUFnSUNBZ0lIUm9jbVZ6YUc5c1pEb2diblZ0WW1WeUxDQm1iazVoYldWek9pQkxibTkzYmsxbGRISnBZM05iWFN3Z2IzQjBjem9nWVc1NVcxMHNJSGRsYVdkb2RITTZJRzUxYldKbGNsdGRMRnh1SUNBZ0lDQWdZV2RuY21WbllYUnBiMjVOWlhSb2IyUTZJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUjlJRDBnWlhabGJuUXVaR0YwWVR0Y2JpQWdkSEo1SUh0Y2JpQWdJQ0F2THlCcFppQW9jM1JoY25SSlpIZ2dJVDBnTFRFcFhHNGdJQ0FnTHk4Z0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb0owVnljbTl5SUdsdUlITndZWEp6WlNCdFlYUnlhWGdnZDI5eWEyVnlKeWs3SUM4dklGUlBSRTg2SUhKbGJXOTJaU0IwYUdseklHeHBibVZjYmlBZ0lDQmpiMjV6ZENCcE9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQWdJR052Ym5OMElHbzZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJQ0FnWTI5dWMzUWdaR2x6ZEdGdVkyVnpPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJR05vZFc1clUybDZaU0E5SUdWdVpFbGtlQ0F0SUhOMFlYSjBTV1I0TzF4dUlDQWdJQzh2WTI5dWMzUWdiV2tnUFNCemRHRnlkRkp2ZHp0Y2JpQWdJQ0F2TDJOdmJuTjBJRzFxSUQwZ2MzUmhjblJEYjJ3N1hHNWNiaUFnSUNCamIyNXpkQ0JoWjJkeVpXZGhkR1VnUFNCblpYUkJaMmR5WldkaGRHbHZia1oxYm1OMGFXOXVLR0ZuWjNKbFoyRjBhVzl1VFdWMGFHOWtMQ0IzWldsbmFIUnpLVHRjYmx4dUlDQWdJSFpoYkhWbGN5NW1iM0pGWVdOb0tDaDJMQ0JqYjJ4SlpIZ3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaHBjMEpwZEVGeWNtRjVUV1YwY21saktHWnVUbUZ0WlhOYlkyOXNTV1I0WFNrcElIdGNiaUFnSUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0IyTG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHbHpUbWxzS0haYmFWMHBLU0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnSUNCMllXeDFaWE5iWTI5c1NXUjRYVnRwWFNBOUlHNWxkeUJDYVhSQmNuSmhlU2gyWVd4MVpYTmJZMjlzU1dSNFhWdHBYUzVmWkdGMFlTd2dkbUZzZFdWelcyTnZiRWxrZUYxYmFWMHVYMnhsYm1kMGFDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmlBZ0lDQnNaWFFnWTI1MElEMGdNRHRjYmlBZ0lDQmpiMjV6ZENCa2FYTjBZVzVqWlVadWN5QTlJRzVsZHlCQmNuSmhlU2htYms1aGJXVnpMbXhsYm1kMGFDa3VabWxzYkNodWRXeHNLUzV0WVhBb0tGOHNJR2twSUQwK0lHNWxkeUJOWldGemRYSmxLR1p1VG1GdFpYTmJhVjBwTG1kbGRFMWxZWE4xY21Vb2IzQjBjMXRwWFNrcE8xeHVJQ0FnSUdOdmJuTjBJSE4wWVhKMFVtOTNJRDBnZG1Gc2RXVnpXekJkTG14bGJtZDBhQ0F0SURJZ0xTQk5ZWFJvTG1ac2IyOXlLRnh1SUNBZ0lDQWdUV0YwYUM1emNYSjBLQzA0SUNvZ2MzUmhjblJKWkhnZ0t5QTBJQ29nZG1Gc2RXVnpXekJkTG14bGJtZDBhQ0FxSUNoMllXeDFaWE5iTUYwdWJHVnVaM1JvSUMwZ01Ta2dMU0EzS1NBdklESWdMU0F3TGpVcE8xeHVJQ0FnSUdOdmJuTjBJSE4wWVhKMFEyOXNJRDBnYzNSaGNuUkpaSGdnTFNCMllXeDFaWE5iTUYwdWJHVnVaM1JvSUNvZ2MzUmhjblJTYjNjZ0t5Qk5ZWFJvTG1ac2IyOXlLQ2h6ZEdGeWRGSnZkeUFySURFcElDb2dLSE4wWVhKMFVtOTNJQ3NnTWlrZ0x5QXlLVHRjYmlBZ0lDQnNaWFFnYldrZ1BTQnpkR0Z5ZEZKdmR6dGNiaUFnSUNCc1pYUWdiV29nUFNCemRHRnlkRU52YkR0Y2JpQWdJQ0IzYUdsc1pTQW9ZMjUwSUR3Z1kyaDFibXRUYVhwbEtTQjdYRzRnSUNBZ0lDQXZMMk52Ym5OMElIWmhiSFZsSUQwZ2MyVnhNVXhwYzNSYmJXbGRJQ1ltSUhObGNURk1hWE4wVzIxcVhTQS9JR2hoYlcxcGJtY29jMlZ4TVV4cGMzUmJiV2xkTENCelpYRXhUR2x6ZEZ0dGFsMHBJRG9nTUR0Y2JpQWdJQ0FnSUdOdmJuTjBJR1JwYzNSaGJtTmxWbUZzZFdWeklEMGdaR2x6ZEdGdVkyVkdibk11YldGd0tDaG1iaXdnYVdSNEtTQTlQaUFoYVhOT2FXd29kbUZzZFdWelcybGtlRjFiYldsZEtTQW1KaUFoYVhOT2FXd29kbUZzZFdWelcybGtlRjFiYldwZEtTQS9YRzRnSUNBZ0lDQWdJR1p1S0haaGJIVmxjMXRwWkhoZFcyMXBYU3dnZG1Gc2RXVnpXMmxrZUYxYmJXcGRLU0E2SURFcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnZG1Gc2RXVWdQU0JrYVhOMFlXNWpaVlpoYkhWbGN5NXNaVzVuZEdnZ1BUMDlJREVnUHlCa2FYTjBZVzVqWlZaaGJIVmxjMXN3WFNBNklHRm5aM0psWjJGMFpTaGthWE4wWVc1alpWWmhiSFZsY3lrN1hHNGdJQ0FnSUNCcFppQW9NU0F0SUhaaGJIVmxJRDQ5SUhSb2NtVnphRzlzWkNrZ2UxeHVJQ0FnSUNBZ0lDQnBMbkIxYzJnb2JXa3BPMXh1SUNBZ0lDQWdJQ0JxTG5CMWMyZ29iV29wTzF4dUlDQWdJQ0FnSUNCa2FYTjBZVzVqWlhNdWNIVnphQ2gyWVd4MVpTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmpiblFyS3p0Y2JpQWdJQ0FnSUcxcUt5czdYRzRnSUNBZ0lDQnBaaUFvYldvZ1BUMDlJSFpoYkhWbGMxc3dYUzVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnYldrckt6dGNiaUFnSUNBZ0lDQWdiV29nUFNCdGFTQXJJREU3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2FVRnljbUY1SUQwZ2JtVjNJRWx1ZERNeVFYSnlZWGtvYVNrN1hHNGdJQ0FnWTI5dWMzUWdha0Z5Y21GNUlEMGdibVYzSUVsdWRETXlRWEp5WVhrb2FpazdYRzRnSUNBZ1kyOXVjM1FnWkdsemRHRnVZMlZCY25KaGVTQTlJRzVsZHlCR2JHOWhkRE15UVhKeVlYa29aR2x6ZEdGdVkyVnpLVHRjYmlBZ0lDQndiM04wVFdWemMyRm5aU2g3YVRvZ2FVRnljbUY1TENCcU9pQnFRWEp5WVhrc0lHUnBjM1JoYm1ObE9pQmthWE4wWVc1alpVRnljbUY1ZlNrN1hHNGdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0J3YjNOMFRXVnpjMkZuWlNoN1pYSnliM0k2SUdWOUtUdGNiaUFnZlZ4dWZUdGNiaUpkZlE9PSIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuLy8gdGhlIHN0YXJ0dXAgZnVuY3Rpb25cbl9fd2VicGFja19yZXF1aXJlX18ueCA9ICgpID0+IHtcblx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG5cdC8vIFRoaXMgZW50cnkgbW9kdWxlIGRlcGVuZHMgb24gb3RoZXIgbG9hZGVkIGNodW5rcyBhbmQgZXhlY3V0aW9uIG5lZWQgdG8gYmUgZGVsYXllZFxuXHR2YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyh1bmRlZmluZWQsIFs1MDFdLCAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXyg0MTExKSkpXG5cdF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8oX193ZWJwYWNrX2V4cG9ydHNfXyk7XG5cdHJldHVybiBfX3dlYnBhY2tfZXhwb3J0c19fO1xufTtcblxuIiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4vLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbl9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG5cdHJldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmYpLnJlZHVjZSgocHJvbWlzZXMsIGtleSkgPT4ge1xuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcblx0XHRyZXR1cm4gcHJvbWlzZXM7XG5cdH0sIFtdKSk7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rcyBhbmQgc2libGluZyBjaHVua3MgZm9yIHRoZSBlbnRyeXBvaW50XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KVxuXHRcdHNjcmlwdFVybCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjO1xuXHRpZiAoIXNjcmlwdFVybCkge1xuXHRcdHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7XG5cdFx0aWYoc2NyaXB0cy5sZW5ndGgpIHtcblx0XHRcdHZhciBpID0gc2NyaXB0cy5sZW5ndGggLSAxO1xuXHRcdFx0d2hpbGUgKGkgPiAtMSAmJiAoIXNjcmlwdFVybCB8fCAhL15odHRwKHM/KTovLnRlc3Qoc2NyaXB0VXJsKSkpIHNjcmlwdFVybCA9IHNjcmlwdHNbaS0tXS5zcmM7XG5cdFx0fVxuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCIvLyBubyBiYXNlVVJJXG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgY2h1bmtzXG4vLyBcIjFcIiBtZWFucyBcImFscmVhZHkgbG9hZGVkXCJcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdDExMTogMVxufTtcblxuLy8gaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nXG52YXIgaW5zdGFsbENodW5rID0gKGRhdGEpID0+IHtcblx0dmFyIFtjaHVua0lkcywgbW9yZU1vZHVsZXMsIHJ1bnRpbWVdID0gZGF0YTtcblx0Zm9yKHZhciBtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhtb3JlTW9kdWxlcywgbW9kdWxlSWQpKSB7XG5cdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuXHRcdH1cblx0fVxuXHRpZihydW50aW1lKSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuXHR3aGlsZShjaHVua0lkcy5sZW5ndGgpXG5cdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRzLnBvcCgpXSA9IDE7XG5cdHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKGRhdGEpO1xufTtcbl9fd2VicGFja19yZXF1aXJlX18uZi5pID0gKGNodW5rSWQsIHByb21pc2VzKSA9PiB7XG5cdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuXHRpZighaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0aWYodHJ1ZSkgeyAvLyBhbGwgY2h1bmtzIGhhdmUgSlNcblx0XHRcdGltcG9ydFNjcmlwdHMoX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgX193ZWJwYWNrX3JlcXVpcmVfXy51KGNodW5rSWQpKTtcblx0XHR9XG5cdH1cbn07XG5cbnZhciBjaHVua0xvYWRpbmdHbG9iYWwgPSBzZWxmW1wid2VicGFja0NodW5rcGVwdGlkZXNcIl0gPSBzZWxmW1wid2VicGFja0NodW5rcGVwdGlkZXNcIl0gfHwgW107XG52YXIgcGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24gPSBjaHVua0xvYWRpbmdHbG9iYWwucHVzaC5iaW5kKGNodW5rTG9hZGluZ0dsb2JhbCk7XG5jaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IGluc3RhbGxDaHVuaztcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdCIsIi8vIHJ1biBzdGFydHVwXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18ueCgpO1xuIl0sIm5hbWVzIjpbImRlZmVycmVkIiwibmV4dCIsImlzTmlsIiwieCIsIm9ubWVzc2FnZSIsImFzeW5jIiwiZXZlbnQiLCJ2YWx1ZXMiLCJzdGFydElkeCIsImVuZElkeCIsInRocmVzaG9sZCIsImZuTmFtZXMiLCJvcHRzIiwiYWdncmVnYXRpb25NZXRob2QiLCJ3ZWlnaHRzIiwiZGF0YSIsImkiLCJqIiwiZGlzdGFuY2VzIiwiY2h1bmtTaXplIiwiYWdncmVnYXRlIiwiTUFOSEFUVEFOIiwidnMiLCJyZWR1Y2UiLCJhY2MiLCJ2YWwiLCJpZHgiLCJzdW0iLCJNYXRoIiwic3FydCIsImdldEFnZ3JlZ2F0aW9uRnVuY3Rpb24iLCJmb3JFYWNoIiwidiIsImNvbElkeCIsImxlbmd0aCIsIl9kYXRhIiwiX2xlbmd0aCIsImNudCIsImRpc3RhbmNlRm5zIiwiQXJyYXkiLCJmaWxsIiwibWFwIiwiXyIsImdldE1lYXN1cmUiLCJzdGFydFJvdyIsImZsb29yIiwic3RhcnRDb2wiLCJtaSIsIm1qIiwiZGlzdGFuY2VWYWx1ZXMiLCJmbiIsInZhbHVlIiwicHVzaCIsImlBcnJheSIsIkludDMyQXJyYXkiLCJqQXJyYXkiLCJkaXN0YW5jZUFycmF5IiwiRmxvYXQzMkFycmF5IiwicG9zdE1lc3NhZ2UiLCJkaXN0YW5jZSIsImUiLCJlcnJvciIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsInVuZGVmaW5lZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibSIsIl9fd2VicGFja19leHBvcnRzX18iLCJPIiwicmVzdWx0IiwiY2h1bmtJZHMiLCJwcmlvcml0eSIsIm5vdEZ1bGZpbGxlZCIsIkluZmluaXR5IiwiZnVsZmlsbGVkIiwiT2JqZWN0Iiwia2V5cyIsImV2ZXJ5Iiwia2V5Iiwic3BsaWNlIiwiciIsImQiLCJkZWZpbml0aW9uIiwibyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsImYiLCJjaHVua0lkIiwiUHJvbWlzZSIsImFsbCIsInByb21pc2VzIiwidSIsImciLCJnbG9iYWxUaGlzIiwidGhpcyIsIkZ1bmN0aW9uIiwid2luZG93Iiwib2JqIiwicHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInNjcmlwdFVybCIsImltcG9ydFNjcmlwdHMiLCJsb2NhdGlvbiIsImRvY3VtZW50IiwiY3VycmVudFNjcmlwdCIsInNyYyIsInNjcmlwdHMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInRlc3QiLCJFcnJvciIsInJlcGxhY2UiLCJwIiwiaW5zdGFsbGVkQ2h1bmtzIiwiY2h1bmtMb2FkaW5nR2xvYmFsIiwic2VsZiIsInBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uIiwiYmluZCIsIm1vcmVNb2R1bGVzIiwicnVudGltZSIsInBvcCIsInRoZW4iXSwic291cmNlUm9vdCI6IiJ9
|
package/dist/{436.js → 216.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var peptides;(()=>{"use strict";({
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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MUJDLFNBQVUsSUFBSTJCLFlBQVkzQixJQUVsQyxHLElDbkVvQixRLFNBRE0sQ0FBQyxDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9zcmMvd29ya2Vycy9tdXRhdGlvbi1jbGlmZnMtd29ya2VyLnRzIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svc3RhcnR1cCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xub25tZXNzYWdlID0gKGV2ZW50KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgc3RhcnRJZHgsIGVuZElkeCwgYWN0aXZpdHlBcnJheSwgbW9ub21lckluZm9BcnJheSwgc2V0dGluZ3MsIGN1cnJlbnRUYXJnZXRJZHggfSA9IGV2ZW50LmRhdGE7XG4gICAgY29uc3QgcG9zID0gW107XG4gICAgY29uc3Qgc2VxMUlkeHMgPSBbXTtcbiAgICBjb25zdCBzZXEySWR4cyA9IFtdO1xuICAgIGNvbnN0IGNodW5rU2l6ZSA9IGVuZElkeCAtIHN0YXJ0SWR4O1xuICAgIGxldCBjbnQgPSAwO1xuICAgIGNvbnN0IHN0YXJ0Um93ID0gYWN0aXZpdHlBcnJheS5sZW5ndGggLSAyIC0gTWF0aC5mbG9vcihNYXRoLnNxcnQoLTggKiBzdGFydElkeCArIDQgKiBhY3Rpdml0eUFycmF5Lmxlbmd0aCAqIChhY3Rpdml0eUFycmF5Lmxlbmd0aCAtIDEpIC0gNykgLyAyIC0gMC41KTtcbiAgICBjb25zdCBzdGFydENvbCA9IHN0YXJ0SWR4IC0gYWN0aXZpdHlBcnJheS5sZW5ndGggKiBzdGFydFJvdyArIE1hdGguZmxvb3IoKHN0YXJ0Um93ICsgMSkgKiAoc3RhcnRSb3cgKyAyKSAvIDIpO1xuICAgIGxldCBzZXExSWR4ID0gc3RhcnRSb3c7XG4gICAgbGV0IHNlcTJJZHggPSBzdGFydENvbDtcbiAgICBjb25zdCB0ZW1wRGF0YSA9IG5ldyBBcnJheShtb25vbWVySW5mb0FycmF5Lmxlbmd0aCk7XG4gICAgd2hpbGUgKGNudCA8IGNodW5rU2l6ZSkge1xuICAgICAgICBpZiAoIShjdXJyZW50VGFyZ2V0SWR4ICE9PSAtMSAmJiAoKChfYSA9IHNldHRpbmdzLnRhcmdldENvbCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJhd0RhdGFbc2VxMUlkeF0pICE9PSBjdXJyZW50VGFyZ2V0SWR4IHx8XG4gICAgICAgICAgICAoKF9iID0gc2V0dGluZ3MudGFyZ2V0Q29sKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmF3RGF0YVtzZXEySWR4XSkgIT09IGN1cnJlbnRUYXJnZXRJZHgpKSkge1xuICAgICAgICAgICAgbGV0IHN1YnN0Q291bnRlciA9IDA7XG4gICAgICAgICAgICBjb25zdCBhY3Rpdml0eVZhbFNlcTEgPSBhY3Rpdml0eUFycmF5W3NlcTFJZHhdO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZpdHlWYWxTZXEyID0gYWN0aXZpdHlBcnJheVtzZXEySWR4XTtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gYWN0aXZpdHlWYWxTZXExIC0gYWN0aXZpdHlWYWxTZXEyO1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKGRlbHRhKSA+PSBzZXR0aW5ncy5taW5BY3Rpdml0eURlbHRhKSB7XG4gICAgICAgICAgICAgICAgbGV0IHN1YnN0Q291bnRlckZsYWcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBsZXQgdGVtcERhdGFJZHggPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbW9ub21lckluZm8gb2YgbW9ub21lckluZm9BcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXExY2F0ZWdvcnlJZHggPSBtb25vbWVySW5mby5yYXdEYXRhW3NlcTFJZHhdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXEyY2F0ZWdvcnlJZHggPSBtb25vbWVySW5mby5yYXdEYXRhW3NlcTJJZHhdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VxMWNhdGVnb3J5SWR4ID09PSBzZXEyY2F0ZWdvcnlJZHgpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgc3Vic3RDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgICAgIHN1YnN0Q291bnRlckZsYWcgPSBzdWJzdENvdW50ZXIgPiBzZXR0aW5ncy5tYXhNdXRhdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJzdENvdW50ZXJGbGFnKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIHRlbXBEYXRhW3RlbXBEYXRhSWR4KytdID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zOiBtb25vbWVySW5mby5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VxMUlkeDogc2VxMUlkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcTJJZHg6IHNlcTJJZHgsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghKHN1YnN0Q291bnRlckZsYWcgfHwgc3Vic3RDb3VudGVyID09PSAwKSkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBEYXRhSWR4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBEYXRhRWxlbWVudCA9IHRlbXBEYXRhW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0ZW1wRGF0YUVsZW1lbnQucG9zO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnB1c2gocG9zaXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VxMUlkeHMucHVzaChzZXExSWR4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcTJJZHhzLnB1c2goc2VxMklkeCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY250Kys7XG4gICAgICAgIHNlcTJJZHgrKztcbiAgICAgICAgaWYgKHNlcTJJZHggPT09IGFjdGl2aXR5QXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICBzZXExSWR4Kys7XG4gICAgICAgICAgICBzZXEySWR4ID0gc2VxMUlkeCArIDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcG9zdE1lc3NhZ2Uoe1xuICAgICAgICBwb3M6IHBvcyxcbiAgICAgICAgc2VxMUlkeHM6IG5ldyBVaW50MzJBcnJheShzZXExSWR4cyksXG4gICAgICAgIHNlcTJJZHhzOiBuZXcgVWludDMyQXJyYXkoc2VxMklkeHMpLFxuICAgIH0pO1xufSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liWFYwWVhScGIyNHRZMnhwWm1aekxYZHZjbXRsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbTExZEdGMGFXOXVMV05zYVdabWN5MTNiM0pyWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096dEJRVUZCTEZOQlFWTXNSMEZCUnl4RFFVRlBMRXRCUVVzc1JVRkJhVUlzUlVGQlJUczdTVUZEZWtNc1RVRkJUU3hGUVVGRExGRkJRVkVzUlVGQlJTeE5RVUZOTEVWQlFVVXNZVUZCWVN4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEZGQlFWRXNSVUZCUlN4blFrRkJaMElzUlVGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRia2NzVFVGQlRTeEhRVUZITEVkQlFXRXNSVUZCUlN4RFFVRkRPMGxCUTNwQ0xFMUJRVTBzVVVGQlVTeEhRVUZoTEVWQlFVVXNRMEZCUXp0SlFVTTVRaXhOUVVGTkxGRkJRVkVzUjBGQllTeEZRVUZGTEVOQlFVTTdTVUZET1VJc1RVRkJUU3hUUVVGVExFZEJRVWNzVFVGQlRTeEhRVUZITEZGQlFWRXNRMEZCUXp0SlFVTndReXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEV2l4TlFVRk5MRkZCUVZFc1IwRkJSeXhoUVVGaExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVOd1JDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExGRkJRVkVzUjBGQlJ5eERRVUZETEVkQlFVY3NZVUZCWVN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExHRkJRV0VzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTJ4SExFMUJRVTBzVVVGQlVTeEhRVUZITEZGQlFWRXNSMEZCUnl4aFFVRmhMRU5CUVVNc1RVRkJUU3hIUVVGSExGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1VVRkJVU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6bEhMRWxCUVVrc1QwRkJUeXhIUVVGSExGRkJRVkVzUTBGQlF6dEpRVU4yUWl4SlFVRkpMRTlCUVU4c1IwRkJSeXhSUVVGUkxFTkJRVU03U1VGRGRrSXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGNFUXNUMEZCVHl4SFFVRkhMRWRCUVVjc1UwRkJVeXhGUVVGRk8xRkJRM1JDTEVsQlFVa3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRU3hOUVVGQkxGRkJRVkVzUTBGQlF5eFRRVUZUTERCRFFVRkZMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlN5eG5Ra0ZCWjBJN1dVRkRla1lzUTBGQlFTeE5RVUZCTEZGQlFWRXNRMEZCUXl4VFFVRlRMREJEUVVGRkxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCU3l4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVTdXVUZETjBRc1NVRkJTU3haUVVGWkxFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEzSkNMRTFCUVUwc1pVRkJaU3hIUVVGSExHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTXZReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRMME1zVFVGQlRTeExRVUZMTEVkQlFVY3NaVUZCWlN4SFFVRkhMR1ZCUVdVc1EwRkJRenRaUVVOb1JDeEpRVUZKTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhGUVVGRk8yZENRVU5vUkN4SlFVRkpMR2RDUVVGblFpeEhRVUZITEV0QlFVc3NRMEZCUXp0blFrRkROMElzU1VGQlNTeFhRVUZYTEVkQlFVY3NRMEZCUXl4RFFVRkRPMmRDUVVOd1FpeExRVUZMTEUxQlFVMHNWMEZCVnl4SlFVRkpMR2RDUVVGblFpeEZRVUZGTzI5Q1FVTXhReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eFhRVUZYTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8yOUNRVU55UkN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhYUVVGWExFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMjlDUVVOeVJDeEpRVUZKTEdWQlFXVXNTMEZCU3l4bFFVRmxPM2RDUVVOeVF5eFRRVUZUTzI5Q1FVVllMRmxCUVZrc1JVRkJSU3hEUVVGRE8yOUNRVU5tTEdkQ1FVRm5RaXhIUVVGSExGbEJRVmtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNXVUZCV1N4RFFVRkRPMjlDUVVONFJDeEpRVUZKTEdkQ1FVRm5RanQzUWtGRGJFSXNUVUZCVFR0dlFrRkZVaXhSUVVGUkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNSMEZCUnp0M1FrRkRlRUlzUjBGQlJ5eEZRVUZGTEZkQlFWY3NRMEZCUXl4SlFVRkpPM2RDUVVOeVFpeFBRVUZQTEVWQlFVVXNUMEZCVHp0M1FrRkRhRUlzVDBGQlR5eEZRVUZGTEU5QlFVODdjVUpCUTJwQ0xFTkJRVU03YVVKQlEwZzdaMEpCUTBRc1NVRkJTU3hEUVVGRExFTkJRVU1zWjBKQlFXZENMRWxCUVVrc1dVRkJXU3hMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzI5Q1FVTTNReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1YwRkJWeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzNkQ1FVTndReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2QwSkJRM0JETEUxQlFVMHNVVUZCVVN4SFFVRkhMR1ZCUVdVc1EwRkJReXhIUVVGSExFTkJRVU03ZDBKQlEzSkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdkMEpCUTI1Q0xGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN2QwSkJRM1pDTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03Y1VKQlEzaENPMmxDUVVOR08yRkJRMFk3VTBGRFJqdFJRVU5FTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTA0c1QwRkJUeXhGUVVGRkxFTkJRVU03VVVGRFZpeEpRVUZKTEU5QlFVOHNTMEZCU3l4aFFVRmhMRU5CUVVNc1RVRkJUU3hGUVVGRk8xbEJRM0JETEU5QlFVOHNSVUZCUlN4RFFVRkRPMWxCUTFZc1QwRkJUeXhIUVVGSExFOUJRVThzUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEZGtJN1MwRkRSanRKUVVORUxGZEJRVmNzUTBGQlF6dFJRVU5XTEVkQlFVY3NSVUZCUlN4SFFVRkhPMUZCUTFJc1VVRkJVU3hGUVVGRkxFbEJRVWtzVjBGQlZ5eERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTnVReXhSUVVGUkxFVkJRVVVzU1VGQlNTeFhRVUZYTEVOQlFVTXNVVUZCVVN4RFFVRkRPMHRCUTNCRExFTkJRVU1zUTBGQlF6dEJRVU5NTEVOQlFVTXNRMEZCUVN4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYjI1dFpYTnpZV2RsSUQwZ1lYTjVibU1nS0dWMlpXNTBLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQTlQaUI3WEc0Z0lHTnZibk4wSUh0emRHRnlkRWxrZUN3Z1pXNWtTV1I0TENCaFkzUnBkbWwwZVVGeWNtRjVMQ0J0YjI1dmJXVnlTVzVtYjBGeWNtRjVMQ0J6WlhSMGFXNW5jeXdnWTNWeWNtVnVkRlJoY21kbGRFbGtlSDBnUFNCbGRtVnVkQzVrWVhSaE8xeHVJQ0JqYjI1emRDQndiM002SUhOMGNtbHVaMXRkSUQwZ1cxMDdYRzRnSUdOdmJuTjBJSE5sY1RGSlpIaHpPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0JqYjI1emRDQnpaWEV5U1dSNGN6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdZMjl1YzNRZ1kyaDFibXRUYVhwbElEMGdaVzVrU1dSNElDMGdjM1JoY25SSlpIZzdYRzRnSUd4bGRDQmpiblFnUFNBd08xeHVJQ0JqYjI1emRDQnpkR0Z5ZEZKdmR5QTlJR0ZqZEdsMmFYUjVRWEp5WVhrdWJHVnVaM1JvSUMwZ01pQXRJRTFoZEdndVpteHZiM0lvWEc0Z0lDQWdUV0YwYUM1emNYSjBLQzA0SUNvZ2MzUmhjblJKWkhnZ0t5QTBJQ29nWVdOMGFYWnBkSGxCY25KaGVTNXNaVzVuZEdnZ0tpQW9ZV04wYVhacGRIbEJjbkpoZVM1c1pXNW5kR2dnTFNBeEtTQXRJRGNwSUM4Z01pQXRJREF1TlNrN1hHNGdJR052Ym5OMElITjBZWEowUTI5c0lEMGdjM1JoY25SSlpIZ2dMU0JoWTNScGRtbDBlVUZ5Y21GNUxteGxibWQwYUNBcUlITjBZWEowVW05M0lDc2dUV0YwYUM1bWJHOXZjaWdvYzNSaGNuUlNiM2NnS3lBeEtTQXFJQ2h6ZEdGeWRGSnZkeUFySURJcElDOGdNaWs3WEc0Z0lHeGxkQ0J6WlhFeFNXUjRJRDBnYzNSaGNuUlNiM2M3WEc0Z0lHeGxkQ0J6WlhFeVNXUjRJRDBnYzNSaGNuUkRiMnc3WEc0Z0lHTnZibk4wSUhSbGJYQkVZWFJoSUQwZ2JtVjNJRUZ5Y21GNUtHMXZibTl0WlhKSmJtWnZRWEp5WVhrdWJHVnVaM1JvS1R0Y2JpQWdkMmhwYkdVZ0tHTnVkQ0E4SUdOb2RXNXJVMmw2WlNrZ2UxeHVJQ0FnSUdsbUlDZ2hLR04xY25KbGJuUlVZWEpuWlhSSlpIZ2dJVDA5SUMweElDWW1JQ2h6WlhSMGFXNW5jeTUwWVhKblpYUkRiMncvTG5KaGQwUmhkR0ZiYzJWeE1VbGtlRjBnSVQwOUlHTjFjbkpsYm5SVVlYSm5aWFJKWkhnZ2ZIeGNiaUFnSUNBZ0lITmxkSFJwYm1kekxuUmhjbWRsZEVOdmJEOHVjbUYzUkdGMFlWdHpaWEV5U1dSNFhTQWhQVDBnWTNWeWNtVnVkRlJoY21kbGRFbGtlQ2twS1NCN1hHNGdJQ0FnSUNCc1pYUWdjM1ZpYzNSRGIzVnVkR1Z5SUQwZ01EdGNiaUFnSUNBZ0lHTnZibk4wSUdGamRHbDJhWFI1Vm1Gc1UyVnhNU0E5SUdGamRHbDJhWFI1UVhKeVlYbGJjMlZ4TVVsa2VGMDdYRzRnSUNBZ0lDQmpiMjV6ZENCaFkzUnBkbWwwZVZaaGJGTmxjVElnUFNCaFkzUnBkbWwwZVVGeWNtRjVXM05sY1RKSlpIaGRPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pHVnNkR0VnUFNCaFkzUnBkbWwwZVZaaGJGTmxjVEVnTFNCaFkzUnBkbWwwZVZaaGJGTmxjVEk3WEc0Z0lDQWdJQ0JwWmlBb1RXRjBhQzVoWW5Nb1pHVnNkR0VwSUQ0OUlITmxkSFJwYm1kekxtMXBia0ZqZEdsMmFYUjVSR1ZzZEdFcElIdGNiaUFnSUNBZ0lDQWdiR1YwSUhOMVluTjBRMjkxYm5SbGNrWnNZV2NnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnYkdWMElIUmxiWEJFWVhSaFNXUjRJRDBnTUR0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnRiMjV2YldWeVNXNW1ieUJ2WmlCdGIyNXZiV1Z5U1c1bWIwRnljbUY1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MyVnhNV05oZEdWbmIzSjVTV1I0SUQwZ2JXOXViMjFsY2tsdVptOHVjbUYzUkdGMFlWdHpaWEV4U1dSNFhUdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnpaWEV5WTJGMFpXZHZjbmxKWkhnZ1BTQnRiMjV2YldWeVNXNW1ieTV5WVhkRVlYUmhXM05sY1RKSlpIaGRPMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaHpaWEV4WTJGMFpXZHZjbmxKWkhnZ1BUMDlJSE5sY1RKallYUmxaMjl5ZVVsa2VDbGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuUnBiblZsTzF4dVhHNGdJQ0FnSUNBZ0lDQWdjM1ZpYzNSRGIzVnVkR1Z5S3lzN1hHNGdJQ0FnSUNBZ0lDQWdjM1ZpYzNSRGIzVnVkR1Z5Um14aFp5QTlJSE4xWW5OMFEyOTFiblJsY2lBK0lITmxkSFJwYm1kekxtMWhlRTExZEdGMGFXOXVjenRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9jM1ZpYzNSRGIzVnVkR1Z5Um14aFp5bGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1WEc0Z0lDQWdJQ0FnSUNBZ2RHVnRjRVJoZEdGYmRHVnRjRVJoZEdGSlpIZ3JLMTBnUFNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3YjNNNklHMXZibTl0WlhKSmJtWnZMbTVoYldVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WlhFeFNXUjRPaUJ6WlhFeFNXUjRMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVnhNa2xrZURvZ2MyVnhNa2xrZUN4Y2JpQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hLSE4xWW5OMFEyOTFiblJsY2tac1lXY2dmSHdnYzNWaWMzUkRiM1Z1ZEdWeUlEMDlQU0F3S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZEdWdGNFUmhkR0ZKWkhnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RHVnRjRVJoZEdGRmJHVnRaVzUwSUQwZ2RHVnRjRVJoZEdGYmFWMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3YjNOcGRHbHZiaUE5SUhSbGJYQkVZWFJoUld4bGJXVnVkQzV3YjNNN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3YjNNdWNIVnphQ2h3YjNOcGRHbHZiaWs3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpaWEV4U1dSNGN5NXdkWE5vS0hObGNURkpaSGdwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjMlZ4TWtsa2VITXVjSFZ6YUNoelpYRXlTV1I0S1R0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ1kyNTBLeXM3WEc0Z0lDQWdjMlZ4TWtsa2VDc3JPMXh1SUNBZ0lHbG1JQ2h6WlhFeVNXUjRJRDA5UFNCaFkzUnBkbWwwZVVGeWNtRjVMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdjMlZ4TVVsa2VDc3JPMXh1SUNBZ0lDQWdjMlZ4TWtsa2VDQTlJSE5sY1RGSlpIZ2dLeUF4TzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J3YjNOMFRXVnpjMkZuWlNoN1hHNGdJQ0FnY0c5ek9pQndiM01zWEc0Z0lDQWdjMlZ4TVVsa2VITTZJRzVsZHlCVmFXNTBNekpCY25KaGVTaHpaWEV4U1dSNGN5a3NYRzRnSUNBZ2MyVnhNa2xrZUhNNklHNWxkeUJWYVc1ME16SkJjbkpoZVNoelpYRXlTV1I0Y3lrc1hHNGdJSDBwTzF4dWZUdGNiaUpkZlE9PSIsIi8vIHN0YXJ0dXBcbi8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLy8gVGhpcyBlbnRyeSBtb2R1bGUgaXMgcmVmZXJlbmNlZCBieSBvdGhlciBtb2R1bGVzIHNvIGl0IGNhbid0IGJlIGlubGluZWRcbnZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0ge307XG5fX3dlYnBhY2tfbW9kdWxlc19fWzg0MzZdKCk7XG4iXSwibmFtZXMiOlsiX19hd2FpdGVyIiwidGhpcyIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwidmFsdWUiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJvbm1lc3NhZ2UiLCJldmVudCIsIl9hIiwiX2IiLCJzdGFydElkeCIsImVuZElkeCIsImFjdGl2aXR5QXJyYXkiLCJtb25vbWVySW5mb0FycmF5Iiwic2V0dGluZ3MiLCJjdXJyZW50VGFyZ2V0SWR4IiwiZGF0YSIsInBvcyIsInNlcTFJZHhzIiwic2VxMklkeHMiLCJjaHVua1NpemUiLCJjbnQiLCJzdGFydFJvdyIsImxlbmd0aCIsIk1hdGgiLCJmbG9vciIsInNxcnQiLCJzZXExSWR4Iiwic2VxMklkeCIsInRlbXBEYXRhIiwiQXJyYXkiLCJ0YXJnZXRDb2wiLCJyYXdEYXRhIiwic3Vic3RDb3VudGVyIiwiZGVsdGEiLCJhYnMiLCJtaW5BY3Rpdml0eURlbHRhIiwic3Vic3RDb3VudGVyRmxhZyIsInRlbXBEYXRhSWR4IiwibW9ub21lckluZm8iLCJtYXhNdXRhdGlvbnMiLCJuYW1lIiwiaSIsInBvc2l0aW9uIiwicHVzaCIsInBvc3RNZXNzYWdlIiwiVWludDMyQXJyYXkiXSwic291cmNlUm9vdCI6IiJ9
|
|
1
|
+
var peptides;(()=>{"use strict";({2216:function(){var t=this&&this.__awaiter||function(t,n,e,a){return new(e||(e=Promise))((function(o,r){function i(t){try{c(a.next(t))}catch(t){r(t)}}function s(t){try{c(a.throw(t))}catch(t){r(t)}}function c(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(i,s)}c((a=a.apply(t,n||[])).next())}))};onmessage=n=>t(void 0,void 0,void 0,(function*(){var t,e;const{startIdx:a,endIdx:o,activityArray:r,monomerInfoArray:i,settings:s,currentTargetIdx:c}=n.data,l=[],f=[],d=[],h=o-a;let u=0;const v=r.length-2-Math.floor(Math.sqrt(-8*a+4*r.length*(r.length-1)-7)/2-.5);let p=v,g=a-r.length*v+Math.floor((v+1)*(v+2)/2);const w=new Array(i.length);for(;u<h;){if(-1===c||(null===(t=s.targetCol)||void 0===t?void 0:t.rawData[p])===c&&(null===(e=s.targetCol)||void 0===e?void 0:e.rawData[g])===c){let t=0;const n=r[p]-r[g];if(Math.abs(n)>=s.minActivityDelta){let n=!1,e=0;for(const a of i)if(a.rawData[p]!==a.rawData[g]){if(t++,n=t>s.maxMutations,n)break;w[e++]={pos:a.name,seq1Idx:p,seq2Idx:g}}if(!n&&0!==t)for(let t=0;t<e;t++){const n=w[t].pos;l.push(n),f.push(p),d.push(g)}}}u++,g++,g===r.length&&(p++,g=p+1)}postMessage({pos:l,seq1Idxs:new Uint32Array(f),seq2Idxs:new Uint32Array(d)})}))}})[2216](),peptides={}})();
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjE2LmpzIiwibWFwcGluZ3MiOiJrREFDQSxJQUFJQSxFQUFhQyxNQUFRQSxLQUFLRCxXQUFjLFNBQVVFLEVBQVNDLEVBQVlDLEVBQUdDLEdBRTFFLE9BQU8sSUFBS0QsSUFBTUEsRUFBSUUsV0FBVSxTQUFVQyxFQUFTQyxHQUMvQyxTQUFTQyxFQUFVQyxHQUFTLElBQU1DLEVBQUtOLEVBQVVPLEtBQUtGLEdBQVMsQ0FBRSxNQUFPRyxHQUFLTCxFQUFPSyxFQUFJLENBQUUsQ0FDMUYsU0FBU0MsRUFBU0osR0FBUyxJQUFNQyxFQUFLTixFQUFpQixNQUFFSyxHQUFTLENBQUUsTUFBT0csR0FBS0wsRUFBT0ssRUFBSSxDQUFFLENBQzdGLFNBQVNGLEVBQUtJLEdBSmxCLElBQWVMLEVBSWFLLEVBQU9DLEtBQU9ULEVBQVFRLEVBQU9MLFFBSjFDQSxFQUl5REssRUFBT0wsTUFKaERBLGFBQWlCTixFQUFJTSxFQUFRLElBQUlOLEdBQUUsU0FBVUcsR0FBV0EsRUFBUUcsRUFBUSxLQUlqQk8sS0FBS1IsRUFBV0ssRUFBVyxDQUM3R0gsR0FBTU4sRUFBWUEsRUFBVWEsTUFBTWhCLEVBQVNDLEdBQWMsS0FBS1MsT0FDbEUsR0FDSixFQUNBTyxVQUFhQyxHQUFVcEIsT0FBVSxPQUFRLE9BQVEsR0FBUSxZQUNyRCxJQUFJcUIsRUFBSUMsRUFDUixNQUFNLFNBQUVDLEVBQVEsT0FBRUMsRUFBTSxjQUFFQyxFQUFhLGlCQUFFQyxFQUFnQixTQUFFQyxFQUFRLGlCQUFFQyxHQUFxQlIsRUFBTVMsS0FDMUZDLEVBQU0sR0FDTkMsRUFBVyxHQUNYQyxFQUFXLEdBQ1hDLEVBQVlULEVBQVNELEVBQzNCLElBQUlXLEVBQU0sRUFDVixNQUFNQyxFQUFXVixFQUFjVyxPQUFTLEVBQUlDLEtBQUtDLE1BQU1ELEtBQUtFLE1BQU0sRUFBSWhCLEVBQVcsRUFBSUUsRUFBY1csUUFBVVgsRUFBY1csT0FBUyxHQUFLLEdBQUssRUFBSSxJQUVsSixJQUFJSSxFQUFVTCxFQUNWTSxFQUZhbEIsRUFBV0UsRUFBY1csT0FBU0QsRUFBV0UsS0FBS0MsT0FBT0gsRUFBVyxJQUFNQSxFQUFXLEdBQUssR0FHM0csTUFBTU8sRUFBVyxJQUFJQyxNQUFNakIsRUFBaUJVLFFBQzVDLEtBQU9GLEVBQU1ELEdBQVcsQ0FDcEIsSUFBNEIsSUFBdEJMLElBQTJELFFBQTdCUCxFQUFLTSxFQUFTaUIsaUJBQThCLElBQVB2QixPQUFnQixFQUFTQSxFQUFHd0IsUUFBUUwsTUFBY1osSUFDeEYsUUFBN0JOLEVBQUtLLEVBQVNpQixpQkFBOEIsSUFBUHRCLE9BQWdCLEVBQVNBLEVBQUd1QixRQUFRSixNQUFjYixFQUFvQixDQUM3RyxJQUFJa0IsRUFBZSxFQUNuQixNQUVNQyxFQUZrQnRCLEVBQWNlLEdBQ2RmLEVBQWNnQixHQUV0QyxHQUFJSixLQUFLVyxJQUFJRCxJQUFVcEIsRUFBU3NCLGlCQUFrQixDQUM5QyxJQUFJQyxHQUFtQixFQUNuQkMsRUFBYyxFQUNsQixJQUFLLE1BQU1DLEtBQWUxQixFQUd0QixHQUZ3QjBCLEVBQVlQLFFBQVFMLEtBQ3BCWSxFQUFZUCxRQUFRSixHQUM1QyxDQUlBLEdBRkFLLElBQ0FJLEVBQW1CSixFQUFlbkIsRUFBUzBCLGFBQ3ZDSCxFQUNBLE1BQ0pSLEVBQVNTLEtBQWlCLENBQ3RCckIsSUFBS3NCLEVBQVlFLEtBQ2pCZCxRQUFTQSxFQUNUQyxRQUFTQSxFQVJELENBV2hCLElBQU1TLEdBQXFDLElBQWpCSixFQUN0QixJQUFLLElBQUlTLEVBQUksRUFBR0EsRUFBSUosRUFBYUksSUFBSyxDQUNsQyxNQUNNQyxFQURrQmQsRUFBU2EsR0FDQXpCLElBQ2pDQSxFQUFJMkIsS0FBS0QsR0FDVHpCLEVBQVMwQixLQUFLakIsR0FDZFIsRUFBU3lCLEtBQUtoQixFQUNsQixDQUVSLENBQ0osQ0FDQVAsSUFDQU8sSUFDSUEsSUFBWWhCLEVBQWNXLFNBQzFCSSxJQUNBQyxFQUFVRCxFQUFVLEVBRTVCLENBQ0FrQixZQUFZLENBQ1I1QixJQUFLQSxFQUNMQyxTQUFVLElBQUk0QixZQUFZNUIsR0FDMUJDLFNBQVUsSUFBSTJCLFlBQVkzQixJQUVsQyxHLElDbkVvQixRLFNBRE0sQ0FBQyxDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9zcmMvd29ya2Vycy9tdXRhdGlvbi1jbGlmZnMtd29ya2VyLnRzIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svc3RhcnR1cCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xub25tZXNzYWdlID0gKGV2ZW50KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgc3RhcnRJZHgsIGVuZElkeCwgYWN0aXZpdHlBcnJheSwgbW9ub21lckluZm9BcnJheSwgc2V0dGluZ3MsIGN1cnJlbnRUYXJnZXRJZHggfSA9IGV2ZW50LmRhdGE7XG4gICAgY29uc3QgcG9zID0gW107XG4gICAgY29uc3Qgc2VxMUlkeHMgPSBbXTtcbiAgICBjb25zdCBzZXEySWR4cyA9IFtdO1xuICAgIGNvbnN0IGNodW5rU2l6ZSA9IGVuZElkeCAtIHN0YXJ0SWR4O1xuICAgIGxldCBjbnQgPSAwO1xuICAgIGNvbnN0IHN0YXJ0Um93ID0gYWN0aXZpdHlBcnJheS5sZW5ndGggLSAyIC0gTWF0aC5mbG9vcihNYXRoLnNxcnQoLTggKiBzdGFydElkeCArIDQgKiBhY3Rpdml0eUFycmF5Lmxlbmd0aCAqIChhY3Rpdml0eUFycmF5Lmxlbmd0aCAtIDEpIC0gNykgLyAyIC0gMC41KTtcbiAgICBjb25zdCBzdGFydENvbCA9IHN0YXJ0SWR4IC0gYWN0aXZpdHlBcnJheS5sZW5ndGggKiBzdGFydFJvdyArIE1hdGguZmxvb3IoKHN0YXJ0Um93ICsgMSkgKiAoc3RhcnRSb3cgKyAyKSAvIDIpO1xuICAgIGxldCBzZXExSWR4ID0gc3RhcnRSb3c7XG4gICAgbGV0IHNlcTJJZHggPSBzdGFydENvbDtcbiAgICBjb25zdCB0ZW1wRGF0YSA9IG5ldyBBcnJheShtb25vbWVySW5mb0FycmF5Lmxlbmd0aCk7XG4gICAgd2hpbGUgKGNudCA8IGNodW5rU2l6ZSkge1xuICAgICAgICBpZiAoIShjdXJyZW50VGFyZ2V0SWR4ICE9PSAtMSAmJiAoKChfYSA9IHNldHRpbmdzLnRhcmdldENvbCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJhd0RhdGFbc2VxMUlkeF0pICE9PSBjdXJyZW50VGFyZ2V0SWR4IHx8XG4gICAgICAgICAgICAoKF9iID0gc2V0dGluZ3MudGFyZ2V0Q29sKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmF3RGF0YVtzZXEySWR4XSkgIT09IGN1cnJlbnRUYXJnZXRJZHgpKSkge1xuICAgICAgICAgICAgbGV0IHN1YnN0Q291bnRlciA9IDA7XG4gICAgICAgICAgICBjb25zdCBhY3Rpdml0eVZhbFNlcTEgPSBhY3Rpdml0eUFycmF5W3NlcTFJZHhdO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZpdHlWYWxTZXEyID0gYWN0aXZpdHlBcnJheVtzZXEySWR4XTtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gYWN0aXZpdHlWYWxTZXExIC0gYWN0aXZpdHlWYWxTZXEyO1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKGRlbHRhKSA+PSBzZXR0aW5ncy5taW5BY3Rpdml0eURlbHRhKSB7XG4gICAgICAgICAgICAgICAgbGV0IHN1YnN0Q291bnRlckZsYWcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBsZXQgdGVtcERhdGFJZHggPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbW9ub21lckluZm8gb2YgbW9ub21lckluZm9BcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXExY2F0ZWdvcnlJZHggPSBtb25vbWVySW5mby5yYXdEYXRhW3NlcTFJZHhdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXEyY2F0ZWdvcnlJZHggPSBtb25vbWVySW5mby5yYXdEYXRhW3NlcTJJZHhdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VxMWNhdGVnb3J5SWR4ID09PSBzZXEyY2F0ZWdvcnlJZHgpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgc3Vic3RDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgICAgIHN1YnN0Q291bnRlckZsYWcgPSBzdWJzdENvdW50ZXIgPiBzZXR0aW5ncy5tYXhNdXRhdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJzdENvdW50ZXJGbGFnKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIHRlbXBEYXRhW3RlbXBEYXRhSWR4KytdID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zOiBtb25vbWVySW5mby5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VxMUlkeDogc2VxMUlkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcTJJZHg6IHNlcTJJZHgsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghKHN1YnN0Q291bnRlckZsYWcgfHwgc3Vic3RDb3VudGVyID09PSAwKSkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBEYXRhSWR4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBEYXRhRWxlbWVudCA9IHRlbXBEYXRhW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0ZW1wRGF0YUVsZW1lbnQucG9zO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnB1c2gocG9zaXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VxMUlkeHMucHVzaChzZXExSWR4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcTJJZHhzLnB1c2goc2VxMklkeCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY250Kys7XG4gICAgICAgIHNlcTJJZHgrKztcbiAgICAgICAgaWYgKHNlcTJJZHggPT09IGFjdGl2aXR5QXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICBzZXExSWR4Kys7XG4gICAgICAgICAgICBzZXEySWR4ID0gc2VxMUlkeCArIDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcG9zdE1lc3NhZ2Uoe1xuICAgICAgICBwb3M6IHBvcyxcbiAgICAgICAgc2VxMUlkeHM6IG5ldyBVaW50MzJBcnJheShzZXExSWR4cyksXG4gICAgICAgIHNlcTJJZHhzOiBuZXcgVWludDMyQXJyYXkoc2VxMklkeHMpLFxuICAgIH0pO1xufSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liWFYwWVhScGIyNHRZMnhwWm1aekxYZHZjbXRsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbTExZEdGMGFXOXVMV05zYVdabWN5MTNiM0pyWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096dEJRVUZCTEZOQlFWTXNSMEZCUnl4RFFVRlBMRXRCUVVzc1JVRkJhVUlzUlVGQlJUczdTVUZEZWtNc1RVRkJUU3hGUVVGRExGRkJRVkVzUlVGQlJTeE5RVUZOTEVWQlFVVXNZVUZCWVN4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEZGQlFWRXNSVUZCUlN4blFrRkJaMElzUlVGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRia2NzVFVGQlRTeEhRVUZITEVkQlFXRXNSVUZCUlN4RFFVRkRPMGxCUTNwQ0xFMUJRVTBzVVVGQlVTeEhRVUZoTEVWQlFVVXNRMEZCUXp0SlFVTTVRaXhOUVVGTkxGRkJRVkVzUjBGQllTeEZRVUZGTEVOQlFVTTdTVUZET1VJc1RVRkJUU3hUUVVGVExFZEJRVWNzVFVGQlRTeEhRVUZITEZGQlFWRXNRMEZCUXp0SlFVTndReXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEV2l4TlFVRk5MRkZCUVZFc1IwRkJSeXhoUVVGaExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVOd1JDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExGRkJRVkVzUjBGQlJ5eERRVUZETEVkQlFVY3NZVUZCWVN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExHRkJRV0VzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTJ4SExFMUJRVTBzVVVGQlVTeEhRVUZITEZGQlFWRXNSMEZCUnl4aFFVRmhMRU5CUVVNc1RVRkJUU3hIUVVGSExGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1VVRkJVU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6bEhMRWxCUVVrc1QwRkJUeXhIUVVGSExGRkJRVkVzUTBGQlF6dEpRVU4yUWl4SlFVRkpMRTlCUVU4c1IwRkJSeXhSUVVGUkxFTkJRVU03U1VGRGRrSXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGNFUXNUMEZCVHl4SFFVRkhMRWRCUVVjc1UwRkJVeXhGUVVGRkxFTkJRVU03VVVGRGRrSXNTVUZCU1N4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGQkxFMUJRVUVzVVVGQlVTeERRVUZETEZOQlFWTXNNRU5CUVVVc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZMTEdkQ1FVRm5RanRaUVVONlJpeERRVUZCTEUxQlFVRXNVVUZCVVN4RFFVRkRMRk5CUVZNc01FTkJRVVVzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRkxMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXpsRUxFbEJRVWtzV1VGQldTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnlRaXhOUVVGTkxHVkJRV1VzUjBGQlJ5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRMME1zVFVGQlRTeGxRVUZsTEVkQlFVY3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xbEJReTlETEUxQlFVMHNTMEZCU3l4SFFVRkhMR1ZCUVdVc1IwRkJSeXhsUVVGbExFTkJRVU03V1VGRGFFUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeERRVUZETzJkQ1FVTnFSQ3hKUVVGSkxHZENRVUZuUWl4SFFVRkhMRXRCUVVzc1EwRkJRenRuUWtGRE4wSXNTVUZCU1N4WFFVRlhMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU53UWl4TFFVRkxMRTFCUVUwc1YwRkJWeXhKUVVGSkxHZENRVUZuUWl4RlFVRkZMRU5CUVVNN2IwSkJRek5ETEUxQlFVMHNaVUZCWlN4SFFVRkhMRmRCUVZjc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdiMEpCUTNKRUxFMUJRVTBzWlVGQlpTeEhRVUZITEZkQlFWY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03YjBKQlEzSkVMRWxCUVVrc1pVRkJaU3hMUVVGTExHVkJRV1U3ZDBKQlEzSkRMRk5CUVZNN2IwSkJSVmdzV1VGQldTeEZRVUZGTEVOQlFVTTdiMEpCUTJZc1owSkJRV2RDTEVkQlFVY3NXVUZCV1N4SFFVRkhMRkZCUVZFc1EwRkJReXhaUVVGWkxFTkJRVU03YjBKQlEzaEVMRWxCUVVrc1owSkJRV2RDTzNkQ1FVTnNRaXhOUVVGTk8yOUNRVVZTTEZGQlFWRXNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhIUVVGSE8zZENRVU40UWl4SFFVRkhMRVZCUVVVc1YwRkJWeXhEUVVGRExFbEJRVWs3ZDBKQlEzSkNMRTlCUVU4c1JVRkJSU3hQUVVGUE8zZENRVU5vUWl4UFFVRlBMRVZCUVVVc1QwRkJUenR4UWtGRGFrSXNRMEZCUXp0blFrRkRTaXhEUVVGRE8yZENRVU5FTEVsQlFVa3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeEpRVUZKTEZsQlFWa3NTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8yOUNRVU01UXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NWMEZCVnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU03ZDBKQlEzSkRMRTFCUVUwc1pVRkJaU3hIUVVGSExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0M1FrRkRjRU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NaVUZCWlN4RFFVRkRMRWRCUVVjc1EwRkJRenQzUWtGRGNrTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dDNRa0ZEYmtJc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0M1FrRkRka0lzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenR2UWtGRGVrSXNRMEZCUXp0blFrRkRTQ3hEUVVGRE8xbEJRMGdzUTBGQlF6dFJRVU5JTEVOQlFVTTdVVUZEUkN4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVOT0xFOUJRVThzUlVGQlJTeERRVUZETzFGQlExWXNTVUZCU1N4UFFVRlBMRXRCUVVzc1lVRkJZU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzFsQlEzSkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8xbEJRMVlzVDBGQlR5eEhRVUZITEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRlRUlzUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZEUkN4WFFVRlhMRU5CUVVNN1VVRkRWaXhIUVVGSExFVkJRVVVzUjBGQlJ6dFJRVU5TTEZGQlFWRXNSVUZCUlN4SlFVRkpMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU03VVVGRGJrTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF6dExRVU53UXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hEUVVGRExFTkJRVUVzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbTl1YldWemMyRm5aU0E5SUdGemVXNWpJQ2hsZG1WdWRDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z1BUNGdlMXh1SUNCamIyNXpkQ0I3YzNSaGNuUkpaSGdzSUdWdVpFbGtlQ3dnWVdOMGFYWnBkSGxCY25KaGVTd2diVzl1YjIxbGNrbHVabTlCY25KaGVTd2djMlYwZEdsdVozTXNJR04xY25KbGJuUlVZWEpuWlhSSlpIaDlJRDBnWlhabGJuUXVaR0YwWVR0Y2JpQWdZMjl1YzNRZ2NHOXpPaUJ6ZEhKcGJtZGJYU0E5SUZ0ZE8xeHVJQ0JqYjI1emRDQnpaWEV4U1dSNGN6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdZMjl1YzNRZ2MyVnhNa2xrZUhNNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lHTnZibk4wSUdOb2RXNXJVMmw2WlNBOUlHVnVaRWxrZUNBdElITjBZWEowU1dSNE8xeHVJQ0JzWlhRZ1kyNTBJRDBnTUR0Y2JpQWdZMjl1YzNRZ2MzUmhjblJTYjNjZ1BTQmhZM1JwZG1sMGVVRnljbUY1TG14bGJtZDBhQ0F0SURJZ0xTQk5ZWFJvTG1ac2IyOXlLRnh1SUNBZ0lFMWhkR2d1YzNGeWRDZ3RPQ0FxSUhOMFlYSjBTV1I0SUNzZ05DQXFJR0ZqZEdsMmFYUjVRWEp5WVhrdWJHVnVaM1JvSUNvZ0tHRmpkR2wyYVhSNVFYSnlZWGt1YkdWdVozUm9JQzBnTVNrZ0xTQTNLU0F2SURJZ0xTQXdMalVwTzF4dUlDQmpiMjV6ZENCemRHRnlkRU52YkNBOUlITjBZWEowU1dSNElDMGdZV04wYVhacGRIbEJjbkpoZVM1c1pXNW5kR2dnS2lCemRHRnlkRkp2ZHlBcklFMWhkR2d1Wm14dmIzSW9LSE4wWVhKMFVtOTNJQ3NnTVNrZ0tpQW9jM1JoY25SU2IzY2dLeUF5S1NBdklESXBPMXh1SUNCc1pYUWdjMlZ4TVVsa2VDQTlJSE4wWVhKMFVtOTNPMXh1SUNCc1pYUWdjMlZ4TWtsa2VDQTlJSE4wWVhKMFEyOXNPMXh1SUNCamIyNXpkQ0IwWlcxd1JHRjBZU0E5SUc1bGR5QkJjbkpoZVNodGIyNXZiV1Z5U1c1bWIwRnljbUY1TG14bGJtZDBhQ2s3WEc0Z0lIZG9hV3hsSUNoamJuUWdQQ0JqYUhWdWExTnBlbVVwSUh0Y2JpQWdJQ0JwWmlBb0lTaGpkWEp5Wlc1MFZHRnlaMlYwU1dSNElDRTlQU0F0TVNBbUppQW9jMlYwZEdsdVozTXVkR0Z5WjJWMFEyOXNQeTV5WVhkRVlYUmhXM05sY1RGSlpIaGRJQ0U5UFNCamRYSnlaVzUwVkdGeVoyVjBTV1I0SUh4OFhHNGdJQ0FnSUNCelpYUjBhVzVuY3k1MFlYSm5aWFJEYjJ3L0xuSmhkMFJoZEdGYmMyVnhNa2xrZUYwZ0lUMDlJR04xY25KbGJuUlVZWEpuWlhSSlpIZ3BLU2tnZTF4dUlDQWdJQ0FnYkdWMElITjFZbk4wUTI5MWJuUmxjaUE5SURBN1hHNGdJQ0FnSUNCamIyNXpkQ0JoWTNScGRtbDBlVlpoYkZObGNURWdQU0JoWTNScGRtbDBlVUZ5Y21GNVczTmxjVEZKWkhoZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWVdOMGFYWnBkSGxXWVd4VFpYRXlJRDBnWVdOMGFYWnBkSGxCY25KaGVWdHpaWEV5U1dSNFhUdGNiaUFnSUNBZ0lHTnZibk4wSUdSbGJIUmhJRDBnWVdOMGFYWnBkSGxXWVd4VFpYRXhJQzBnWVdOMGFYWnBkSGxXWVd4VFpYRXlPMXh1SUNBZ0lDQWdhV1lnS0UxaGRHZ3VZV0p6S0dSbGJIUmhLU0ErUFNCelpYUjBhVzVuY3k1dGFXNUJZM1JwZG1sMGVVUmxiSFJoS1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0J6ZFdKemRFTnZkVzUwWlhKR2JHRm5JRDBnWm1Gc2MyVTdYRzRnSUNBZ0lDQWdJR3hsZENCMFpXMXdSR0YwWVVsa2VDQTlJREE3WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2JXOXViMjFsY2tsdVptOGdiMllnYlc5dWIyMWxja2x1Wm05QmNuSmhlU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhObGNURmpZWFJsWjI5eWVVbGtlQ0E5SUcxdmJtOXRaWEpKYm1adkxuSmhkMFJoZEdGYmMyVnhNVWxrZUYwN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2MyVnhNbU5oZEdWbmIzSjVTV1I0SUQwZ2JXOXViMjFsY2tsdVptOHVjbUYzUkdGMFlWdHpaWEV5U1dSNFhUdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2MyVnhNV05oZEdWbmIzSjVTV1I0SUQwOVBTQnpaWEV5WTJGMFpXZHZjbmxKWkhncFhHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmx4dUlDQWdJQ0FnSUNBZ0lITjFZbk4wUTI5MWJuUmxjaXNyTzF4dUlDQWdJQ0FnSUNBZ0lITjFZbk4wUTI5MWJuUmxja1pzWVdjZ1BTQnpkV0p6ZEVOdmRXNTBaWElnUGlCelpYUjBhVzVuY3k1dFlYaE5kWFJoZEdsdmJuTTdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tITjFZbk4wUTI5MWJuUmxja1pzWVdjcFhHNGdJQ0FnSUNBZ0lDQWdJQ0JpY21WaGF6dGNibHh1SUNBZ0lDQWdJQ0FnSUhSbGJYQkVZWFJoVzNSbGJYQkVZWFJoU1dSNEt5dGRJRDBnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjRzl6T2lCdGIyNXZiV1Z5U1c1bWJ5NXVZVzFsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjMlZ4TVVsa2VEb2djMlZ4TVVsa2VDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhObGNUSkpaSGc2SUhObGNUSkpaSGdzWEc0Z0lDQWdJQ0FnSUNBZ2ZUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JwWmlBb0lTaHpkV0p6ZEVOdmRXNTBaWEpHYkdGbklIeDhJSE4xWW5OMFEyOTFiblJsY2lBOVBUMGdNQ2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFJsYlhCRVlYUmhTV1I0T3lCcEt5c3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhSbGJYQkVZWFJoUld4bGJXVnVkQ0E5SUhSbGJYQkVZWFJoVzJsZE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjRzl6YVhScGIyNGdQU0IwWlcxd1JHRjBZVVZzWlcxbGJuUXVjRzl6TzF4dUlDQWdJQ0FnSUNBZ0lDQWdjRzl6TG5CMWMyZ29jRzl6YVhScGIyNHBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MyVnhNVWxrZUhNdWNIVnphQ2h6WlhFeFNXUjRLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lITmxjVEpKWkhoekxuQjFjMmdvYzJWeE1rbGtlQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUdOdWRDc3JPMXh1SUNBZ0lITmxjVEpKWkhnckt6dGNiaUFnSUNCcFppQW9jMlZ4TWtsa2VDQTlQVDBnWVdOMGFYWnBkSGxCY25KaGVTNXNaVzVuZEdncElIdGNiaUFnSUNBZ0lITmxjVEZKWkhnckt6dGNiaUFnSUNBZ0lITmxjVEpKWkhnZ1BTQnpaWEV4U1dSNElDc2dNVHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjRzl6ZEUxbGMzTmhaMlVvZTF4dUlDQWdJSEJ2Y3pvZ2NHOXpMRnh1SUNBZ0lITmxjVEZKWkhoek9pQnVaWGNnVldsdWRETXlRWEp5WVhrb2MyVnhNVWxrZUhNcExGeHVJQ0FnSUhObGNUSkpaSGh6T2lCdVpYY2dWV2x1ZERNeVFYSnlZWGtvYzJWeE1rbGtlSE1wTEZ4dUlDQjlLVHRjYm4wN1hHNGlYWDA9IiwiLy8gc3RhcnR1cFxuLy8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vLyBUaGlzIGVudHJ5IG1vZHVsZSBpcyByZWZlcmVuY2VkIGJ5IG90aGVyIG1vZHVsZXMgc28gaXQgY2FuJ3QgYmUgaW5saW5lZFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSB7fTtcbl9fd2VicGFja19tb2R1bGVzX19bMjIxNl0oKTtcbiJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJ2YWx1ZSIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIm9ubWVzc2FnZSIsImV2ZW50IiwiX2EiLCJfYiIsInN0YXJ0SWR4IiwiZW5kSWR4IiwiYWN0aXZpdHlBcnJheSIsIm1vbm9tZXJJbmZvQXJyYXkiLCJzZXR0aW5ncyIsImN1cnJlbnRUYXJnZXRJZHgiLCJkYXRhIiwicG9zIiwic2VxMUlkeHMiLCJzZXEySWR4cyIsImNodW5rU2l6ZSIsImNudCIsInN0YXJ0Um93IiwibGVuZ3RoIiwiTWF0aCIsImZsb29yIiwic3FydCIsInNlcTFJZHgiLCJzZXEySWR4IiwidGVtcERhdGEiLCJBcnJheSIsInRhcmdldENvbCIsInJhd0RhdGEiLCJzdWJzdENvdW50ZXIiLCJkZWx0YSIsImFicyIsIm1pbkFjdGl2aXR5RGVsdGEiLCJzdWJzdENvdW50ZXJGbGFnIiwidGVtcERhdGFJZHgiLCJtb25vbWVySW5mbyIsIm1heE11dGF0aW9ucyIsIm5hbWUiLCJpIiwicG9zaXRpb24iLCJwdXNoIiwicG9zdE1lc3NhZ2UiLCJVaW50MzJBcnJheSJdLCJzb3VyY2VSb290IjoiIn0=
|