@datagrok/eda 1.1.13 → 1.1.14
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/36.js +2 -2
- package/dist/709.js +2 -2
- package/dist/package-test.js +2 -2
- package/dist/package.js +2 -2
- package/package.json +3 -3
package/dist/709.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var eda;(()=>{"use strict";var t,e,r={2357:(t,e,r)=>{var o=r(2590);async function n(t,e,r){const o=t.length,n=[],s=[];for(let a=0;a<o;a++)for(let l=a+1;l<o;l++){const o=t[a],i=t[l];e[o]?.[i]>=r&&(n.push(a),s.push(l))}return function(t,e,r){const o=new Float32Array(r.length).fill(0).map((()=>10*Math.random())),n=new Float32Array(r.length).fill(0).map((()=>10*Math.random())),s=new Float32Array(r.length).fill(0),a=new Float32Array(r.length).fill(0);for(let l=0;l<100;l++){const i=1-l/100;s.fill(0),a.fill(0);for(let r=0;r<t.length;r++){const l=t[r],c=e[r],f=o[l]-o[c],h=n[l]-n[c];Math.abs(f)>=1&&(s[l]-=i*f,s[c]+=i*f),Math.abs(h)>=1&&(a[l]-=i*h,a[c]+=i*h)}for(let t=0;t<r.length;t++){const e=Math.sqrt(s[t]*s[t]+a[t]*a[t]);e>0&&(o[t]+=s[t]/e*i,n[t]+=a[t]/e*i)}}let l=o[0],i=n[0],c=o[0],f=n[0];for(let t=1;t<r.length;t++)l=Math.min(l,o[t]),i=Math.min(i,n[t]),c=Math.max(c,o[t]),f=Math.max(f,n[t]);let h=c-l,u=f-i;0===h&&(h=c);for(let t=0;t<r.length;t++)o[t]=(o[t]-l)/h/2+.5;0===u&&(u=f);for(let t=0;t<r.length;t++)n[t]=(n[t]-i)/u/2+.5;return{embedX:o,embedY:n}}(n,s,t)}const s={expandFactor:2,maxIterations:5,inflateFactor:2,multFactor:1};class a{_options;constructor(t={}){this._options={...s,...t}}async transform(t,e){let r=this.toObjectForm(t);this.addLoops(r,e),this.normalize(r);for(let t=0;t<this._options.maxIterations;t++)r=this.expand(r,e),this.inflate(r),this.normalize(r)
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RCxHQUNkVyxFQUFTM0gsUUFDZHVLLEVBQWdCNUMsRUFBU2QsT0FBUyxFQUNuQzRELEVBQTJCaEYsRUFBSyxDLEtabkI3QmhHLEVBQU91SCxFQUFvQlosRUFDL0JZLEVBQW9CWixFQUFJLElBQ2hCWSxFQUFvQjJCLEVBQUUsS0FBS2tDLEtBQUtwTCxHYUR4QyxJQUFJK0gsRUFBc0JSLEVBQW9CWixJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9jaHVuayBsb2FkZWQiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9zdGFydHVwIGNodW5rIGRlcGVuZGVuY2llcyIsIndlYnBhY2s6Ly9lZGEvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML2Jpby1sYXlvdXQuanMiLCJ3ZWJwYWNrOi8vZWRhLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9tYXJjb3YtY2x1c3Rlci5qcyIsIndlYnBhY2s6Ly9lZGEvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvTUNML21jbC13b3JrZXIuanMiLCJ3ZWJwYWNrOi8vZWRhLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL2Rpc3RhbmNlLW1hdHJpeC91dGlscy5qcyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2Vuc3VyZSBjaHVuayIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2ltcG9ydFNjcmlwdHMgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9zdGFydHVwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkZWZlcnJlZCA9IFtdO1xuX193ZWJwYWNrX3JlcXVpcmVfXy5PID0gKHJlc3VsdCwgY2h1bmtJZHMsIGZuLCBwcmlvcml0eSkgPT4ge1xuXHRpZihjaHVua0lkcykge1xuXHRcdHByaW9yaXR5ID0gcHJpb3JpdHkgfHwgMDtcblx0XHRmb3IodmFyIGkgPSBkZWZlcnJlZC5sZW5ndGg7IGkgPiAwICYmIGRlZmVycmVkW2kgLSAxXVsyXSA+IHByaW9yaXR5OyBpLS0pIGRlZmVycmVkW2ldID0gZGVmZXJyZWRbaSAtIDFdO1xuXHRcdGRlZmVycmVkW2ldID0gW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldO1xuXHRcdHJldHVybjtcblx0fVxuXHR2YXIgbm90RnVsZmlsbGVkID0gSW5maW5pdHk7XG5cdGZvciAodmFyIGkgPSAwOyBpIDwgZGVmZXJyZWQubGVuZ3RoOyBpKyspIHtcblx0XHR2YXIgW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldID0gZGVmZXJyZWRbaV07XG5cdFx0dmFyIGZ1bGZpbGxlZCA9IHRydWU7XG5cdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBjaHVua0lkcy5sZW5ndGg7IGorKykge1xuXHRcdFx0aWYgKChwcmlvcml0eSAmIDEgPT09IDAgfHwgbm90RnVsZmlsbGVkID49IHByaW9yaXR5KSAmJiBPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLk8pLmV2ZXJ5KChrZXkpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fLk9ba2V5XShjaHVua0lkc1tqXSkpKSkge1xuXHRcdFx0XHRjaHVua0lkcy5zcGxpY2Uoai0tLCAxKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZ1bGZpbGxlZCA9IGZhbHNlO1xuXHRcdFx0XHRpZihwcmlvcml0eSA8IG5vdEZ1bGZpbGxlZCkgbm90RnVsZmlsbGVkID0gcHJpb3JpdHk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKGZ1bGZpbGxlZCkge1xuXHRcdFx0ZGVmZXJyZWQuc3BsaWNlKGktLSwgMSlcblx0XHRcdHZhciByID0gZm4oKTtcblx0XHRcdGlmIChyICE9PSB1bmRlZmluZWQpIHJlc3VsdCA9IHI7XG5cdFx0fVxuXHR9XG5cdHJldHVybiByZXN1bHQ7XG59OyIsInZhciBuZXh0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy54O1xuX193ZWJwYWNrX3JlcXVpcmVfXy54ID0gKCkgPT4ge1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5lKDU5MCkudGhlbihuZXh0KTtcbn07IiwiZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJpb0xheW91dChjbHVzdGVyLCBzcGFyc2VPYmplY3QsIHRocmVzaG9sZCkge1xuICAgIGNvbnN0IG4gPSBjbHVzdGVyLmxlbmd0aDtcbiAgICBjb25zdCBpcyA9IFtdO1xuICAgIGNvbnN0IGpzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgbjsgaisrKSB7XG4gICAgICAgICAgICBjb25zdCBhID0gY2x1c3RlcltpXTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBjbHVzdGVyW2pdO1xuICAgICAgICAgICAgaWYgKHNwYXJzZU9iamVjdFthXT8uW2JdID49IHRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgIGlzLnB1c2goaSk7XG4gICAgICAgICAgICAgICAganMucHVzaChqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZ2V0TGF5b3V0RW1iZWRkaW5ncyhpcywganMsIGNsdXN0ZXIpO1xufVxuZnVuY3Rpb24gZ2V0TGF5b3V0RW1iZWRkaW5ncyhpcywganMsIGNsdXN0ZXIpIHtcbiAgICBjb25zdCBlbWJlZFggPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApLm1hcCgoKSA9PiBNYXRoLnJhbmRvbSgpICogMTApO1xuICAgIGNvbnN0IGVtYmVkWSA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCkubWFwKCgpID0+IE1hdGgucmFuZG9tKCkgKiAxMCk7XG4gICAgY29uc3QgaXRlcmF0aW9ucyA9IDEwMDtcbiAgICBjb25zdCB4VmVsb2NpdGllcyA9IG5ldyBGbG9hdDMyQXJyYXkoY2x1c3Rlci5sZW5ndGgpLmZpbGwoMCk7XG4gICAgY29uc3QgeVZlbG9jaXRpZXMgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRlbXBlcmF0dXJlID0gKDEgLSBpIC8gaXRlcmF0aW9ucyk7XG4gICAgICAgIHhWZWxvY2l0aWVzLmZpbGwoMCk7XG4gICAgICAgIHlWZWxvY2l0aWVzLmZpbGwoMCk7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGlzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGEgPSBpc1tpZHhdO1xuICAgICAgICAgICAgY29uc3QgYiA9IGpzW2lkeF07XG4gICAgICAgICAgICBjb25zdCBkeCA9IGVtYmVkWFthXSAtIGVtYmVkWFtiXTtcbiAgICAgICAgICAgIGNvbnN0IGR5ID0gZW1iZWRZW2FdIC0gZW1iZWRZW2JdO1xuICAgICAgICAgICAgLy8gICBjb25zdCBkaXN0YW5jZSA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IGZhY3RvciA9IChkaXN0YW5jZSAtIDEpIC8gZGlzdGFuY2U7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IG9mZnNldFggPSBkeCAqIGZhY3RvcjtcbiAgICAgICAgICAgIC8vICAgY29uc3Qgb2Zmc2V0WSA9IGR5ICogZmFjdG9yO1xuICAgICAgICAgICAgaWYgKE1hdGguYWJzKGR4KSA+PSAxKSB7XG4gICAgICAgICAgICAgICAgeFZlbG9jaXRpZXNbYV0gLT0gdGVtcGVyYXR1cmUgKiBkeDtcbiAgICAgICAgICAgICAgICB4VmVsb2NpdGllc1tiXSArPSB0ZW1wZXJhdHVyZSAqIGR4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE1hdGguYWJzKGR5KSA+PSAxKSB7XG4gICAgICAgICAgICAgICAgeVZlbG9jaXRpZXNbYV0gLT0gdGVtcGVyYXR1cmUgKiBkeTtcbiAgICAgICAgICAgICAgICB5VmVsb2NpdGllc1tiXSArPSB0ZW1wZXJhdHVyZSAqIGR5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gICBlbWJlZFlbYV0gKz0gb2Zmc2V0WSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICAgICAgLy8gICBlbWJlZFlbYl0gLT0gb2Zmc2V0WSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgY29uc3QgdmVjU2l6ZSA9IE1hdGguc3FydCh4VmVsb2NpdGllc1tpZHhdICogeFZlbG9jaXRpZXNbaWR4XSArIHlWZWxvY2l0aWVzW2lkeF0gKiB5VmVsb2NpdGllc1tpZHhdKTtcbiAgICAgICAgICAgIGlmICh2ZWNTaXplID4gMCkge1xuICAgICAgICAgICAgICAgIGVtYmVkWFtpZHhdICs9IHhWZWxvY2l0aWVzW2lkeF0gLyB2ZWNTaXplICogdGVtcGVyYXR1cmU7XG4gICAgICAgICAgICAgICAgZW1iZWRZW2lkeF0gKz0geVZlbG9jaXRpZXNbaWR4XSAvIHZlY1NpemUgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBub3JtYWxpemVcbiAgICBsZXQgbWluWCA9IGVtYmVkWFswXTtcbiAgICBsZXQgbWluWSA9IGVtYmVkWVswXTtcbiAgICBsZXQgbWF4WCA9IGVtYmVkWFswXTtcbiAgICBsZXQgbWF4WSA9IGVtYmVkWVswXTtcbiAgICBmb3IgKGxldCBpZHggPSAxOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgbWluWCA9IE1hdGgubWluKG1pblgsIGVtYmVkWFtpZHhdKTtcbiAgICAgICAgbWluWSA9IE1hdGgubWluKG1pblksIGVtYmVkWVtpZHhdKTtcbiAgICAgICAgbWF4WCA9IE1hdGgubWF4KG1heFgsIGVtYmVkWFtpZHhdKTtcbiAgICAgICAgbWF4WSA9IE1hdGgubWF4KG1heFksIGVtYmVkWVtpZHhdKTtcbiAgICB9XG4gICAgbGV0IHJhbmdlWCA9IG1heFggLSBtaW5YO1xuICAgIGxldCByYW5nZVkgPSBtYXhZIC0gbWluWTtcbiAgICBpZiAocmFuZ2VYID09PSAwKVxuICAgICAgICByYW5nZVggPSBtYXhYO1xuICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGNsdXN0ZXIubGVuZ3RoOyBpZHgrKylcbiAgICAgICAgZW1iZWRYW2lkeF0gPSAoZW1iZWRYW2lkeF0gLSBtaW5YKSAvIHJhbmdlWCAvIDIgKyAwLjU7XG4gICAgaWYgKHJhbmdlWSA9PT0gMClcbiAgICAgICAgcmFuZ2VZID0gbWF4WTtcbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspXG4gICAgICAgIGVtYmVkWVtpZHhdID0gKGVtYmVkWVtpZHhdIC0gbWluWSkgLyByYW5nZVkgLyAyICsgMC41O1xuICAgIHJldHVybiB7IGVtYmVkWCwgZW1iZWRZIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZbWx2TFd4aGVXOTFkQzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltSnBieTFzWVhsdmRYUXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUlVFc1RVRkJUU3hEUVVGRExFdEJRVXNzVlVGQlZTeFRRVUZUTEVOQlFVTXNUMEZCYVVJc1JVRkJSU3haUVVGblF5eEZRVUZGTEZOQlFXbENPMGxCUTNCSExFMUJRVTBzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRla0lzVFVGQlRTeEZRVUZGTEVkQlFXRXNSVUZCUlN4RFFVRkRPMGxCUTNoQ0xFMUJRVTBzUlVGQlJTeEhRVUZoTEVWQlFVVXNRMEZCUXp0SlFVTjRRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFGQlF6RkNMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlF6bENMRTFCUVUwc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnlRaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRja0lzU1VGQlNTeFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFRRVUZUTEVWQlFVVTdaMEpCUTNKRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRMWdzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOYU8xTkJRMFk3UzBGRFJqdEpRVU5FTEU5QlFVOHNiVUpCUVcxQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVNNVF5eERRVUZETzBGQlJVUXNVMEZCVXl4dFFrRkJiVUlzUTBGQlF5eEZRVUZaTEVWQlFVVXNSVUZCV1N4RlFVRkZMRTlCUVdsQ08wbEJRM2hGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0SlFVTjBSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGRFWXNUVUZCVFN4VlFVRlZMRWRCUVVjc1IwRkJSeXhEUVVGRE8wbEJRM1pDTEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE4wUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3haUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU0zUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NWVUZCVlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRMjVETEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjZReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNCQ0xGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRjRUlzUzBGQlN5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVN1dVRkRlRU1zVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnhDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU5zUWl4TlFVRk5MRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnBETEUxQlFVMHNSVUZCUlN4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRha01zYlVSQlFXMUVPMWxCUTI1RUxEaERRVUU0UXp0WlFVTTVReXhwUTBGQmFVTTdXVUZEYWtNc2FVTkJRV2xETzFsQlEycERMRWxCUVVrc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVN1owSkJRM0pDTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hYUVVGWExFZEJRVWNzUlVGQlJTeERRVUZETzJkQ1FVTnVReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NWMEZCVnl4SFFVRkhMRVZCUVVVc1EwRkJRenRoUVVOd1F6dFpRVU5FTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdaMEpCUTNKQ0xGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4WFFVRlhMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU51UXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXp0aFFVTndRenRaUVVOSUxIZERRVUYzUXp0WlFVTjRReXgzUTBGQmQwTTdVMEZEZGtNN1VVRkRSQ3hMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0WlFVTTNReXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0pITEVsQlFVa3NUMEZCVHl4SFFVRkhMRU5CUVVNc1JVRkJSVHRuUWtGRFppeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEU5QlFVOHNSMEZCUnl4WFFVRlhMRU5CUVVNN1owSkJRM2hFTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NUMEZCVHl4SFFVRkhMRmRCUVZjc1EwRkJRenRoUVVONlJEdFRRVU5HTzB0QlEwWTdTVUZGUkN4WlFVRlpPMGxCUTFvc1NVRkJTU3hKUVVGSkxFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKQ0xFbEJRVWtzU1VGQlNTeEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOeVFpeEpRVUZKTEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGNrSXNTVUZCU1N4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkNMRXRCUVVzc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlF6ZERMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU51UXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGJrTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMjVETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOd1F6dEpRVU5FTEVsQlFVa3NUVUZCVFN4SFFVRkhMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03U1VGRGVrSXNTVUZCU1N4TlFVRk5MRWRCUVVjc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU42UWl4SlFVRkpMRTFCUVUwc1MwRkJTeXhEUVVGRE8xRkJRMlFzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTm9RaXhMUVVGTExFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVTdVVUZETTBNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEUxQlFVMHNSMEZCUnl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8wbEJRM2hFTEVsQlFVa3NUVUZCVFN4TFFVRkxMRU5CUVVNN1VVRkRaQ3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETzBsQlEyaENMRXRCUVVzc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJUdFJRVU16UXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzVFVGQlRTeEhRVUZITEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1NVRkZlRVFzVDBGQlR5eEZRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVNc1EwRkJRenRCUVVNeFFpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0VGNHRnljMlZOWVhSeWFYaFBZbXBsWTNSOUlHWnliMjBnSnk0dmRIbHdaWE1uTzF4dVhHNWxlSEJ2Y25RZ1lYTjVibU1nWm5WdVkzUnBiMjRnWW1sdlRHRjViM1YwS0dOc2RYTjBaWEk2SUc1MWJXSmxjbHRkTENCemNHRnljMlZQWW1wbFkzUTZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkQ3dnZEdoeVpYTm9iMnhrT2lCdWRXMWlaWElwSUh0Y2JpQWdZMjl1YzNRZ2JpQTlJR05zZFhOMFpYSXViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQnBjem9nYm5WdFltVnlXMTBnUFNCYlhUdGNiaUFnWTI5dWMzUWdhbk02SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2Jqc2dhU3NyS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYWlBOUlHa2dLeUF4T3lCcUlEd2dianNnYWlzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCaElEMGdZMngxYzNSbGNsdHBYVHRjYmlBZ0lDQWdJR052Ym5OMElHSWdQU0JqYkhWemRHVnlXMnBkTzF4dUlDQWdJQ0FnYVdZZ0tITndZWEp6WlU5aWFtVmpkRnRoWFQ4dVcySmRJRDQ5SUhSb2NtVnphRzlzWkNrZ2UxeHVJQ0FnSUNBZ0lDQnBjeTV3ZFhOb0tHa3BPMXh1SUNBZ0lDQWdJQ0JxY3k1d2RYTm9LR29wTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdaMlYwVEdGNWIzVjBSVzFpWldSa2FXNW5jeWhwY3l3Z2FuTXNJR05zZFhOMFpYSXBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQm5aWFJNWVhsdmRYUkZiV0psWkdScGJtZHpLR2x6T2lCdWRXMWlaWEpiWFN3Z2FuTTZJRzUxYldKbGNsdGRMQ0JqYkhWemRHVnlPaUJ1ZFcxaVpYSmJYU2tnZTF4dUlDQmpiMjV6ZENCbGJXSmxaRmdnUFNCdVpYY2dSbXh2WVhRek1rRnljbUY1S0dOc2RYTjBaWEl1YkdWdVozUm9LUzVtYVd4c0tEQXBMbTFoY0Nnb0tTQTlQaUJOWVhSb0xuSmhibVJ2YlNncElDb2dNVEFwTzF4dUlDQmpiMjV6ZENCbGJXSmxaRmtnUFNCdVpYY2dSbXh2WVhRek1rRnljbUY1S0dOc2RYTjBaWEl1YkdWdVozUm9LUzVtYVd4c0tEQXBMbTFoY0Nnb0tTQTlQaUJOWVhSb0xuSmhibVJ2YlNncElDb2dNVEFwTzF4dUlDQmpiMjV6ZENCcGRHVnlZWFJwYjI1eklEMGdNVEF3TzF4dUlDQmpiMjV6ZENCNFZtVnNiMk5wZEdsbGN5QTlJRzVsZHlCR2JHOWhkRE15UVhKeVlYa29ZMngxYzNSbGNpNXNaVzVuZEdncExtWnBiR3dvTUNrN1hHNGdJR052Ym5OMElIbFdaV3h2WTJsMGFXVnpJRDBnYm1WM0lFWnNiMkYwTXpKQmNuSmhlU2hqYkhWemRHVnlMbXhsYm1kMGFDa3VabWxzYkNnd0tUdGNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCcGRHVnlZWFJwYjI1ek95QnBLeXNwSUh0Y2JpQWdJQ0JqYjI1emRDQjBaVzF3WlhKaGRIVnlaU0E5SUNneElDMGdhU0F2SUdsMFpYSmhkR2x2Ym5NcE8xeHVJQ0FnSUhoV1pXeHZZMmwwYVdWekxtWnBiR3dvTUNrN1hHNGdJQ0FnZVZabGJHOWphWFJwWlhNdVptbHNiQ2d3S1R0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXdPeUJwWkhnZ1BDQnBjeTVzWlc1bmRHZzdJR2xrZUNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCaElEMGdhWE5iYVdSNFhUdGNiaUFnSUNBZ0lHTnZibk4wSUdJZ1BTQnFjMXRwWkhoZE8xeHVJQ0FnSUNBZ1kyOXVjM1FnWkhnZ1BTQmxiV0psWkZoYllWMGdMU0JsYldKbFpGaGJZbDA3WEc0Z0lDQWdJQ0JqYjI1emRDQmtlU0E5SUdWdFltVmtXVnRoWFNBdElHVnRZbVZrV1Z0aVhUdGNiaUFnSUNBZ0lDOHZJQ0FnWTI5dWMzUWdaR2x6ZEdGdVkyVWdQU0JOWVhSb0xuTnhjblFvWkhnZ0tpQmtlQ0FySUdSNUlDb2daSGtwTzF4dUlDQWdJQ0FnTHk4Z0lDQmpiMjV6ZENCbVlXTjBiM0lnUFNBb1pHbHpkR0Z1WTJVZ0xTQXhLU0F2SUdScGMzUmhibU5sTzF4dUlDQWdJQ0FnTHk4Z0lDQmpiMjV6ZENCdlptWnpaWFJZSUQwZ1pIZ2dLaUJtWVdOMGIzSTdYRzRnSUNBZ0lDQXZMeUFnSUdOdmJuTjBJRzltWm5ObGRGa2dQU0JrZVNBcUlHWmhZM1J2Y2p0Y2JpQWdJQ0FnSUdsbUlDaE5ZWFJvTG1GaWN5aGtlQ2tnUGowZ01Ta2dlMXh1SUNBZ0lDQWdJQ0I0Vm1Wc2IyTnBkR2xsYzF0aFhTQXRQU0IwWlcxd1pYSmhkSFZ5WlNBcUlHUjRPMXh1SUNBZ0lDQWdJQ0I0Vm1Wc2IyTnBkR2xsYzF0aVhTQXJQU0IwWlcxd1pYSmhkSFZ5WlNBcUlHUjRPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0UxaGRHZ3VZV0p6S0dSNUtTQStQU0F4S1NCN1hHNGdJQ0FnSUNBZ0lIbFdaV3h2WTJsMGFXVnpXMkZkSUMwOUlIUmxiWEJsY21GMGRYSmxJQ29nWkhrN1hHNGdJQ0FnSUNBZ0lIbFdaV3h2WTJsMGFXVnpXMkpkSUNzOUlIUmxiWEJsY21GMGRYSmxJQ29nWkhrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnTHk4Z0lDQmxiV0psWkZsYllWMGdLejBnYjJabWMyVjBXU0FxSUhSbGJYQmxjbUYwZFhKbE8xeHVJQ0FnSUM4dklDQWdaVzFpWldSWlcySmRJQzA5SUc5bVpuTmxkRmtnS2lCMFpXMXdaWEpoZEhWeVpUdGNiaUFnSUNCOVhHNGdJQ0FnWm05eUlDaHNaWFFnYVdSNElEMGdNRHNnYVdSNElEd2dZMngxYzNSbGNpNXNaVzVuZEdnN0lHbGtlQ3NyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IyWldOVGFYcGxJRDBnVFdGMGFDNXpjWEowS0hoV1pXeHZZMmwwYVdWelcybGtlRjBnS2lCNFZtVnNiMk5wZEdsbGMxdHBaSGhkSUNzZ2VWWmxiRzlqYVhScFpYTmJhV1I0WFNBcUlIbFdaV3h2WTJsMGFXVnpXMmxrZUYwcE8xeHVJQ0FnSUNBZ2FXWWdLSFpsWTFOcGVtVWdQaUF3S1NCN1hHNGdJQ0FnSUNBZ0lHVnRZbVZrV0Z0cFpIaGRJQ3M5SUhoV1pXeHZZMmwwYVdWelcybGtlRjBnTHlCMlpXTlRhWHBsSUNvZ2RHVnRjR1Z5WVhSMWNtVTdYRzRnSUNBZ0lDQWdJR1Z0WW1Wa1dWdHBaSGhkSUNzOUlIbFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0x5QjJaV05UYVhwbElDb2dkR1Z0Y0dWeVlYUjFjbVU3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHk4Z2JtOXliV0ZzYVhwbFhHNGdJR3hsZENCdGFXNVlJRDBnWlcxaVpXUllXekJkTzF4dUlDQnNaWFFnYldsdVdTQTlJR1Z0WW1Wa1dWc3dYVHRjYmlBZ2JHVjBJRzFoZUZnZ1BTQmxiV0psWkZoYk1GMDdYRzRnSUd4bGRDQnRZWGhaSUQwZ1pXMWlaV1JaV3pCZE8xeHVJQ0JtYjNJZ0tHeGxkQ0JwWkhnZ1BTQXhPeUJwWkhnZ1BDQmpiSFZ6ZEdWeUxteGxibWQwYURzZ2FXUjRLeXNwSUh0Y2JpQWdJQ0J0YVc1WUlEMGdUV0YwYUM1dGFXNG9iV2x1V0N3Z1pXMWlaV1JZVzJsa2VGMHBPMXh1SUNBZ0lHMXBibGtnUFNCTllYUm9MbTFwYmlodGFXNVpMQ0JsYldKbFpGbGJhV1I0WFNrN1hHNGdJQ0FnYldGNFdDQTlJRTFoZEdndWJXRjRLRzFoZUZnc0lHVnRZbVZrV0Z0cFpIaGRLVHRjYmlBZ0lDQnRZWGhaSUQwZ1RXRjBhQzV0WVhnb2JXRjRXU3dnWlcxaVpXUlpXMmxrZUYwcE8xeHVJQ0I5WEc0Z0lHeGxkQ0J5WVc1blpWZ2dQU0J0WVhoWUlDMGdiV2x1V0R0Y2JpQWdiR1YwSUhKaGJtZGxXU0E5SUcxaGVGa2dMU0J0YVc1Wk8xeHVJQ0JwWmlBb2NtRnVaMlZZSUQwOVBTQXdLVnh1SUNBZ0lISmhibWRsV0NBOUlHMWhlRmc3WEc0Z0lHWnZjaUFvYkdWMElHbGtlQ0E5SURBN0lHbGtlQ0E4SUdOc2RYTjBaWEl1YkdWdVozUm9PeUJwWkhnckt5bGNiaUFnSUNCbGJXSmxaRmhiYVdSNFhTQTlJQ2hsYldKbFpGaGJhV1I0WFNBdElHMXBibGdwSUM4Z2NtRnVaMlZZSUM4Z01pQXJJREF1TlR0Y2JpQWdhV1lnS0hKaGJtZGxXU0E5UFQwZ01DbGNiaUFnSUNCeVlXNW5aVmtnUFNCdFlYaFpPMXh1SUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F3T3lCcFpIZ2dQQ0JqYkhWemRHVnlMbXhsYm1kMGFEc2dhV1I0S3lzcFhHNGdJQ0FnWlcxaVpXUlpXMmxrZUYwZ1BTQW9aVzFpWldSWlcybGtlRjBnTFNCdGFXNVpLU0F2SUhKaGJtZGxXU0F2SURJZ0t5QXdMalU3WEc1Y2JpQWdjbVYwZFhKdUlIdGxiV0psWkZnc0lHVnRZbVZrV1gwN1hHNTlYRzRpWFgwPSIsImltcG9ydCB7IGJpb0xheW91dCB9IGZyb20gJy4vYmlvLWxheW91dCc7XG5leHBvcnQgY29uc3QgZGVmYXVsdE1DTE9wdGlvbnMgPSB7XG4gICAgZXhwYW5kRmFjdG9yOiAyLFxuICAgIG1heEl0ZXJhdGlvbnM6IDUsXG4gICAgaW5mbGF0ZUZhY3RvcjogMixcbiAgICBtdWx0RmFjdG9yOiAxLFxufTtcbmV4cG9ydCBjbGFzcyBNQ0xTcGFyc2VSZWR1Y2VyIHtcbiAgICBfb3B0aW9ucztcbiAgICBjb25zdHJ1Y3RvcihvcHRzID0ge30pIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHsgLi4uZGVmYXVsdE1DTE9wdGlvbnMsIC4uLm9wdHMgfTtcbiAgICB9XG4gICAgYXN5bmMgdHJhbnNmb3JtKHNwYXJzZU1hdHJpeCwgblJvd3MpIHtcbiAgICAgICAgLy8gdGVzdFdvcmtlck11bHRpcGx5KCk7XG4gICAgICAgIC8vIHJldHVybiBuZXcgSW50MzJBcnJheShuUm93cyk7XG4gICAgICAgIGxldCBzcGFyc2VPYmplY3QgPSB0aGlzLnRvT2JqZWN0Rm9ybShzcGFyc2VNYXRyaXgpO1xuICAgICAgICB0aGlzLmFkZExvb3BzKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICB0aGlzLm5vcm1hbGl6ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX29wdGlvbnMubWF4SXRlcmF0aW9uczsgaSsrKSB7XG4gICAgICAgICAgICBzcGFyc2VPYmplY3QgPSB0aGlzLmV4cGFuZChzcGFyc2VPYmplY3QsIG5Sb3dzKTtcbiAgICAgICAgICAgIHRoaXMuaW5mbGF0ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgdGhpcy5ub3JtYWxpemUoc3BhcnNlT2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGNsdXN0ZXJzLCBpcywganMgfSA9IHRoaXMuYXNzaWduQ2x1c3RlcnMoc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgIGNvbnN0IGVtYmVkZGluZ3MgPSBhd2FpdCB0aGlzLmxheW91dChjbHVzdGVycywgc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgIHJldHVybiB7IGNsdXN0ZXJzLCBlbWJlZFg6IGVtYmVkZGluZ3MuZW1iZWRYLCBlbWJlZFk6IGVtYmVkZGluZ3MuZW1iZWRZLCBpcywganMgfTtcbiAgICB9XG4gICAgYXN5bmMgbGF5b3V0KGNsdXN0ZXJzLCBzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIGNvbnN0IGVtYmVkWCA9IG5ldyBGbG9hdDMyQXJyYXkoblJvd3MpLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IGVtYmVkWSA9IG5ldyBGbG9hdDMyQXJyYXkoblJvd3MpLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJNYXAgPSB7fTtcbiAgICAgICAgY2x1c3RlcnMuZm9yRWFjaCgoY2x1c3RlciwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjbHVzdGVyTWFwW2NsdXN0ZXJdKVxuICAgICAgICAgICAgICAgIGNsdXN0ZXJNYXBbY2x1c3Rlcl0gPSBbXTtcbiAgICAgICAgICAgIGNsdXN0ZXJNYXBbY2x1c3Rlcl0ucHVzaChpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNvbnN0IG5DbHVzdGVycyA9IE9iamVjdC5rZXlzKGNsdXN0ZXJNYXApLmxlbmd0aDtcbiAgICAgICAgLy8gY29uc3QgcGVyUm93ID0gTWF0aC5mbG9vcihNYXRoLnNxcnQobkNsdXN0ZXJzKSk7XG4gICAgICAgIGxldCBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgY29uc3Qgc29ydGVkQ2x1c3Rlck5hbWVzID0gT2JqZWN0LmtleXMoY2x1c3Rlck1hcCk7XG4gICAgICAgIHNvcnRlZENsdXN0ZXJOYW1lcy5zb3J0KChhLCBiKSA9PiBjbHVzdGVyTWFwW2JdLmxlbmd0aCAtIGNsdXN0ZXJNYXBbYV0ubGVuZ3RoKTtcbiAgICAgICAgbGV0IHBlclJvdyA9IDY7XG4gICAgICAgIGxldCB5T2Zmc2V0ID0gMDtcbiAgICAgICAgY29uc3QgbGF5b3V0U2l6ZSA9IDU7XG4gICAgICAgIGZvciAoY29uc3QgY2x1c3Rlck5hbWUgb2Ygc29ydGVkQ2x1c3Rlck5hbWVzKSB7XG4gICAgICAgICAgICBjb25zdCBjbHVzdGVyID0gY2x1c3Rlck1hcFtjbHVzdGVyTmFtZV07XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gYXdhaXQgYmlvTGF5b3V0KGNsdXN0ZXIsIHNwYXJzZU1hdHJpeCwgMC4wMDEpO1xuICAgICAgICAgICAgaWYgKGNsdXN0ZXJOdW0gPT09IHBlclJvdykge1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJOdW0gPSAwO1xuICAgICAgICAgICAgICAgIHlPZmZzZXQgKz0gbGF5b3V0U2l6ZSAvIHBlclJvdztcbiAgICAgICAgICAgICAgICBwZXJSb3cgPSBNYXRoLmNlaWwocGVyUm93ICogMS41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG9mZnNldFggPSAoY2x1c3Rlck51bSAlIHBlclJvdykgKiBsYXlvdXRTaXplIC8gcGVyUm93O1xuICAgICAgICAgICAgLy8gY29uc3Qgb2Zmc2V0WSA9IE1hdGguZmxvb3IoY2x1c3Rlck51bSAvIHBlclJvdykgKiAyO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbWJlZGRpbmdzLmVtYmVkWC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGVtYmVkWFtjbHVzdGVyW2ldXSA9IGVtYmVkZGluZ3MuZW1iZWRYW2ldICogbGF5b3V0U2l6ZSAvIHBlclJvdyArIG9mZnNldFg7XG4gICAgICAgICAgICAgICAgZW1iZWRZW2NsdXN0ZXJbaV1dID0gZW1iZWRkaW5ncy5lbWJlZFlbaV0gKiBsYXlvdXRTaXplIC8gcGVyUm93ICsgeU9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBlbWJlZFgsIGVtYmVkWSB9O1xuICAgIH1cbiAgICBtZXJnZUNsdXN0ZXJzKGNsdXN0ZXJzLCBpLCBqKSB7XG4gICAgICAgIGNvbnN0IGlDbHVzdGVyID0gY2x1c3RlcnNbaV07XG4gICAgICAgIGNvbnN0IGpDbHVzdGVyID0gY2x1c3RlcnNbal07XG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgY2x1c3RlcnMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgIGlmIChjbHVzdGVyc1trXSA9PT0gakNsdXN0ZXIpXG4gICAgICAgICAgICAgICAgY2x1c3RlcnNba10gPSBpQ2x1c3RlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3NpZ25DbHVzdGVycyhzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIGxldCBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgY29uc3QgaXMgPSBbXTtcbiAgICAgICAgY29uc3QganMgPSBbXTtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KE1hdGgubG9nMTAoblJvd3MpLCAyKSkgKyAxO1xuICAgICAgICBjb25zdCBtaW5PcmRlciA9IE1hdGgucG93KDEwLCBvcmRlcik7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJzID0gbmV3IEFycmF5KG5Sb3dzKS5maWxsKC0xKTtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIE9iamVjdC5rZXlzKHNwYXJzZU1hdHJpeCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhzcGFyc2VNYXRyaXhbaV0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQoc3BhcnNlTWF0cml4W2ldW2pdICogbWluT3JkZXIpIC8gbWluT3JkZXIgPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIHNwYXJzZU1hdHJpeFtpXVtqXSAhPT0gTnVtYmVyKGkpICYmIE51bWJlcihqKSA+IE51bWJlcihpKSkge1xuICAgICAgICAgICAgICAgICAgICBpcy5wdXNoKE51bWJlcihpKSk7XG4gICAgICAgICAgICAgICAgICAgIGpzLnB1c2goTnVtYmVyKGopKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW051bWJlcihpKV0gIT09IC0xICYmIGNsdXN0ZXJzW051bWJlcihqKV0gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2x1c3RlcnNbTnVtYmVyKGkpXSAhPT0gY2x1c3RlcnNbTnVtYmVyKGopXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lcmdlQ2x1c3RlcnMoY2x1c3RlcnMsIE51bWJlcihpKSwgTnVtYmVyKGopKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjbHVzdGVyc1tOdW1iZXIoaSldICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGopXSA9IGNsdXN0ZXJzW051bWJlcihpKV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2x1c3RlcnNbTnVtYmVyKGopXSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihpKV0gPSBjbHVzdGVyc1tOdW1iZXIoaildO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGkpXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaildID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoY2x1c3RlcnNbaV0gPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJzW2ldID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBjbHVzdGVycywgaXMsIGpzIH07XG4gICAgfVxuICAgIHRvT2JqZWN0Rm9ybShzcGFyc2VNYXRyaXgpIHtcbiAgICAgICAgY29uc3Qgc3BhcnNlT2JqZWN0ID0ge307XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BhcnNlTWF0cml4LmkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dID0ge307XG4gICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dW3NwYXJzZU1hdHJpeC5qW2ldXSA9IDEgLSBzcGFyc2VNYXRyaXguZGlzdGFuY2VbaV07XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXSA9IHt9O1xuICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXVtzcGFyc2VNYXRyaXguaVtpXV0gPSAxIC0gc3BhcnNlTWF0cml4LmRpc3RhbmNlW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcGFyc2VPYmplY3Q7XG4gICAgfVxuICAgIGFkZExvb3BzKHNwYXJzZU9iamVjdCwgblJvd3MpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV0gPSB7fTtcbiAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXVtpXSA9IHRoaXMuX29wdGlvbnMubXVsdEZhY3RvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBub3JtYWxpemUoc3BhcnNlT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBsZXQgc3VtID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhyb3cpKVxuICAgICAgICAgICAgICAgIHN1bSArPSByb3dbal07XG4gICAgICAgICAgICBpZiAoc3VtID09PSAwKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHJvdykpXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldW2pdIC89IHN1bTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBleHBhbmQoc3BhcnNlT2JqZWN0LCBuUm93cykge1xuICAgICAgICBjb25zdCBleHBhbmRlZE9iamVjdCA9IHt9O1xuICAgICAgICBjb25zdCBvcmRlciA9IE1hdGguZmxvb3IoTWF0aC5tYXgoTWF0aC5sb2cxMChuUm93cyksIDIpKSArIDE7XG4gICAgICAgIGNvbnN0IG1pbk9yZGVyID0gTWF0aC5wb3coMTAsIG9yZGVyKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXSlcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIC8vIGNvbnN0IHJvdyA9IHNwYXJzZU9iamVjdFtpXTtcbiAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2ldID0ge307XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gaTsgaiA8IG5Sb3dzOyBqKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXT8uW2pdKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmdldEV4cGFuZFZhbHVlKHNwYXJzZU9iamVjdCwgaSwgaik7IC8vcHJ1bmluZyBzdGVwXG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQodmFsICogbWluT3JkZXIpIC8gbWluT3JkZXIgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2ldW2pdID0gdmFsO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWV4cGFuZGVkT2JqZWN0W2pdKVxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3Rbal0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3Rbal1baV0gPSB2YWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBleHBhbmRlZE9iamVjdDtcbiAgICB9XG4gICAgLy8gcHJpdmF0ZSBwcnVuZShyb3c6IFNwYXJzZU1hdHJpeE9iamVjdFtudW1iZXJdKSB7XG4gICAgLy8gfVxuICAgIGluZmxhdGUoc3BhcnNlT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMocm93KSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV1bal0gPSBNYXRoLnBvdyhzcGFyc2VPYmplY3RbaV1bal0sIHRoaXMuX29wdGlvbnMuaW5mbGF0ZUZhY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0RXhwYW5kVmFsdWUoc3BhcnNlT2JqZWN0LCBpLCBqKSB7XG4gICAgICAgIGxldCB2YWwgPSAwO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXhlcyA9IE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdFtpXSA/PyB7fSk7XG4gICAgICAgIGNvbnN0IG90aGVySW5kZXhlcyA9IE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdFtqXSA/PyB7fSk7XG4gICAgICAgIGZvciAoY29uc3QgayBvZiBjdXJyZW50SW5kZXhlcykge1xuICAgICAgICAgICAgaWYgKG90aGVySW5kZXhlcy5pbmNsdWRlcyhrKSlcbiAgICAgICAgICAgICAgICB2YWwgKz0gc3BhcnNlT2JqZWN0W2ldW2tdICogc3BhcnNlT2JqZWN0W2pdW2tdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGeVkyOTJMV05zZFhOMFpYSXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKdFlYSmpiM1l0WTJ4MWMzUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGRFFTeFBRVUZQTEVWQlFVTXNVMEZCVXl4RlFVRkRMRTFCUVUwc1kwRkJZeXhEUVVGRE8wRkJSM1pETEUxQlFVMHNRMEZCUXl4TlFVRk5MR2xDUVVGcFFpeEhRVUZsTzBsQlF6TkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wbEJRMllzWVVGQllTeEZRVUZGTEVOQlFVTTdTVUZEYUVJc1lVRkJZU3hGUVVGRkxFTkJRVU03U1VGRGFFSXNWVUZCVlN4RlFVRkZMRU5CUVVNN1EwRkRaQ3hEUVVGRE8wRkJSVVlzVFVGQlRTeFBRVUZQTEdkQ1FVRm5RanRKUVVOdVFpeFJRVUZSTEVOQlFXRTdTVUZGTjBJc1dVRkJXU3hQUVVFMFFpeEZRVUZGTzFGQlEzaERMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzUlVGQlF5eEhRVUZITEdsQ1FVRnBRaXhGUVVGRkxFZEJRVWNzU1VGQlNTeEZRVUZETEVOQlFVTTdTVUZEYkVRc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNXVUZCWjBNc1JVRkJSU3hMUVVGaE8xRkJRM0JGTEhkQ1FVRjNRanRSUVVONFFpeG5RMEZCWjBNN1VVRkRhRU1zU1VGQlNTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU51UkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGbEJRVmtzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnVReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUXpkQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVOd1JDeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdXVUZEYUVRc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0WlFVTXpRaXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMU5CUXpsQ08xRkJRMFFzVFVGQlRTeEZRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4WlFVRlpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNFVXNUVUZCVFN4VlFVRlZMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNSVUZCUlN4WlFVRlpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNFVXNUMEZCVHl4RlFVRkRMRkZCUVZFc1JVRkJSU3hOUVVGTkxFVkJRVVVzVlVGQlZTeERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVVc1ZVRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkRMRU5CUVVNN1NVRkRiRVlzUTBGQlF6dEpRVVZQTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJhMElzUlVGQlJTeFpRVUZuUXl4RlFVRkZMRXRCUVdFN1VVRkRkRVlzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5RExFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXZReXhOUVVGTkxGVkJRVlVzUjBGQk5FSXNSVUZCUlN4RFFVRkRPMUZCUXk5RExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRE9VSXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU03WjBKQlEzUkNMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZETTBJc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNNVFpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRzlFUVVGdlJEdFJRVU53UkN4dFJFRkJiVVE3VVVGRGJrUXNTVUZCU1N4VlFVRlZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMjVDTEUxQlFVMHNhMEpCUVd0Q0xFZEJRVWNzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOdVJDeHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRlZCUVZVc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTTNSaXhKUVVGSkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGWml4SlFVRkpMRTlCUVU4c1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGFFSXNUVUZCVFN4VlFVRlZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM0pDTEV0QlFVc3NUVUZCVFN4WFFVRlhMRWxCUVVrc2EwSkJRV3RDTEVWQlFVVTdXVUZETlVNc1RVRkJUU3hQUVVGUExFZEJRVWNzVlVGQlZTeERRVUZETEZkQlFXdENMRU5CUVVVc1EwRkJRenRaUVVOb1JDeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MRk5CUVZNc1EwRkJReXhQUVVGUExFVkJRVVVzV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTJwRkxFbEJRVWtzVlVGQlZTeExRVUZMTEUxQlFVMHNSVUZCUlR0blFrRkRla0lzVlVGQlZTeEhRVUZITEVOQlFVTXNRMEZCUXp0blFrRkRaaXhQUVVGUExFbEJRVWtzVlVGQlZTeEhRVUZITEUxQlFVMHNRMEZCUXp0blFrRkRMMElzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETzJGQlEyeERPMWxCUTBRc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eFZRVUZWTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hIUVVGSExFMUJRVTBzUTBGQlF6dFpRVU0xUkN4MVJFRkJkVVE3V1VGRmRrUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTnFSQ3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRWRCUVVjc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF6dG5Ra0ZETVVVc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4SFFVRkhMRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU03WVVGRE0wVTdXVUZEUkN4VlFVRlZMRVZCUVVVc1EwRkJRenRUUVVOa08xRkJRMFFzVDBGQlR5eEZRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRVZCUVVNc1EwRkJRenRKUVVNeFFpeERRVUZETzBsQlJVOHNZVUZCWVN4RFFVRkRMRkZCUVd0Q0xFVkJRVVVzUTBGQlV5eEZRVUZGTEVOQlFWTTdVVUZETlVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpkQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNM1FpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVONFF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhSUVVGUk8yZENRVU14UWl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETzFOQlF6RkNPMGxCUTBnc1EwRkJRenRKUVVOTkxHTkJRV01zUTBGQlF5eFpRVUZuUXl4RlFVRkZMRXRCUVdFN1VVRkRia1VzU1VGQlNTeFZRVUZWTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTI1Q0xFMUJRVTBzUlVGQlJTeEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTjRRaXhOUVVGTkxFVkJRVVVzUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZEZUVJc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETjBRc1RVRkJUU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNrTXNUVUZCVFN4UlFVRlJMRWRCUVdFc1NVRkJTU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNrUXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZPMWxCUTNwRExFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNSVUZCUlR0blFrRkRia1FzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1IwRkJSeXhSUVVGUkxFZEJRVWNzUTBGQlF6dHZRa0ZEZUVVc1dVRkJXU3hEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETEVOQlFWRXNRMEZCUXl4TFFVRkxMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTzI5Q1FVTjZSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU51UWl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVOdVFpeEpRVUZKTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVN2QwSkJRelZFTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03TkVKQlF6ZERMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVVVGQlVTeEZRVUZGTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0eFFrRkRkRVE3ZVVKQlFVMHNTVUZCU1N4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVN2QwSkJRM0pETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03Y1VKQlF6TkRPM2xDUVVGTkxFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzNkQ1FVTnlReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVNelF6dDVRa0ZCVFR0M1FrRkRUQ3hWUVVGVkxFVkJRVVVzUTBGQlF6dDNRa0ZEWWl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRPM2RDUVVOcVF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETzNGQ1FVTnNRenRwUWtGRFJqdGhRVU5HTzFOQlEwWTdVVUZEUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU4wUXl4SlFVRkpMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlR0blFrRkRkRUlzVlVGQlZTeEZRVUZITEVOQlFVTTdaMEpCUTJRc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEZWQlFWVXNRMEZCUXp0aFFVTXhRanRUUVVOR08xRkJRMFFzVDBGQlR5eEZRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRExFTkJRVU03U1VGRE5VSXNRMEZCUXp0SlFVVk5MRmxCUVZrc1EwRkJReXhaUVVGblF6dFJRVU5zUkN4TlFVRk5MRmxCUVZrc1IwRkJlVU1zUlVGQlJTeERRVUZETzFGQlF6bEVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTTVReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEyeERMRmxCUVZrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8xbEJRM1pETEZsQlFWa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyeEdMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGJFTXNXVUZCV1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRka01zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRGJrWTdVVUZEUkN4UFFVRlBMRmxCUVZrc1EwRkJRenRKUVVOMFFpeERRVUZETzBsQlJVOHNVVUZCVVN4RFFVRkRMRmxCUVdkRExFVkJRVVVzUzBGQllUdFJRVU01UkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU5zUWl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzFsQlEzWkNMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF6dFRRVU12UXp0SlFVTklMRU5CUVVNN1NVRkZUeXhUUVVGVExFTkJRVU1zV1VGQlowTTdVVUZEYUVRc1MwRkJTeXhOUVVGTkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRk8xbEJRM3BETEUxQlFVMHNSMEZCUnl4SFFVRkhMRmxCUVZrc1EwRkJReXhEUVVGUkxFTkJRVU1zUTBGQlF6dFpRVU51UXl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRFdpeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVTTVRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRPMWxCUTNaQ0xFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTTdaMEpCUVVVc1UwRkJVenRaUVVONFFpeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVTTVRaXhaUVVGWkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRE8xTkJRek5ETzBsQlEwZ3NRMEZCUXp0SlFVVlBMRTFCUVUwc1EwRkJReXhaUVVGblF5eEZRVUZGTEV0QlFXRTdVVUZETlVRc1RVRkJUU3hqUVVGakxFZEJRWFZDTEVWQlFVVXNRMEZCUXp0UlFVTTVReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU55UXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU5zUWl4VFFVRlRPMWxCUTFnc0swSkJRU3RDTzFsQlF5OUNMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEZGtJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRXRCUVVzc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZET1VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRGRrSXNVMEZCVXp0blFrRkRXQ3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4alFVRmpPMmRDUVVOdVJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEZGQlFWRXNSMEZCUnl4RFFVRkRMRVZCUVVVN2IwSkJRemRETEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdiMEpCUXpOQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRPM2RDUVVOd1FpeGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8yOUNRVU42UWl4alFVRmpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMmxDUVVNMVFqdGhRVU5HTzFOQlEwWTdVVUZEUkN4UFFVRlBMR05CUVdNc1EwRkJRenRKUVVONFFpeERRVUZETzBsQlJVUXNiVVJCUVcxRU8wbEJSVzVFTEVsQlFVazdTVUZGU1N4UFFVRlBMRU5CUVVNc1dVRkJaME03VVVGRE9VTXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZPMWxCUTNwRExFMUJRVTBzUjBGQlJ5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJRenRaUVVOdVF5eExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVTTVRaXhaUVVGWkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNc1EwRkJVU3hEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRUUVVNNVJ6dEpRVU5JTEVOQlFVTTdTVUZGVHl4alFVRmpMRU5CUVVNc1dVRkJaME1zUlVGQlJTeERRVUZOTEVWQlFVVXNRMEZCVFR0UlFVTnlSU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEV2l4TlFVRk5MR05CUVdNc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU14UkN4TlFVRk5MRmxCUVZrc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU40UkN4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxHTkJRV01zUlVGQlJUdFpRVU01UWl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTXhRaXhIUVVGSExFbEJRVWtzV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVZFc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJRenRUUVVOb1JUdFJRVU5FTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1EwRkJRenREUVVOR0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhTWlhOMWJIUjlJR1p5YjIwZ0p5NHVMMlJwYzNSaGJtTmxMVzFoZEhKcGVDOXpjR0Z5YzJVdGJXRjBjbWw0TFhObGNuWnBZMlVuTzF4dWFXMXdiM0owSUh0aWFXOU1ZWGx2ZFhSOUlHWnliMjBnSnk0dlltbHZMV3hoZVc5MWRDYzdYRzVwYlhCdmNuUWdlMDFEVEU5d2RHbHZibk1zSUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZEgwZ1puSnZiU0FuTGk5MGVYQmxjeWM3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JrWldaaGRXeDBUVU5NVDNCMGFXOXVjem9nVFVOTVQzQjBhVzl1Y3lBOUlIdGNiaUFnWlhod1lXNWtSbUZqZEc5eU9pQXlMRnh1SUNCdFlYaEpkR1Z5WVhScGIyNXpPaUExTEZ4dUlDQnBibVpzWVhSbFJtRmpkRzl5T2lBeUxGeHVJQ0J0ZFd4MFJtRmpkRzl5T2lBeExGeHVmVHRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRTFEVEZOd1lYSnpaVkpsWkhWalpYSWdlMXh1SUNCd2NtbDJZWFJsSUY5dmNIUnBiMjV6T2lCTlEweFBjSFJwYjI1ek8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHOXdkSE02SUZCaGNuUnBZV3c4VFVOTVQzQjBhVzl1Y3o0Z1BTQjdmU2tnZTF4dUlDQWdJSFJvYVhNdVgyOXdkR2x2Ym5NZ1BTQjdMaTR1WkdWbVlYVnNkRTFEVEU5d2RHbHZibk1zSUM0dUxtOXdkSE45TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdGemVXNWpJSFJ5WVc1elptOXliU2h6Y0dGeWMyVk5ZWFJ5YVhnNklGTndZWEp6WlUxaGRISnBlRkpsYzNWc2RDd2dibEp2ZDNNNklHNTFiV0psY2lrZ2UxeHVJQ0FnSUM4dklIUmxjM1JYYjNKclpYSk5kV3gwYVhCc2VTZ3BPMXh1SUNBZ0lDOHZJSEpsZEhWeWJpQnVaWGNnU1c1ME16SkJjbkpoZVNodVVtOTNjeWs3WEc0Z0lDQWdiR1YwSUhOd1lYSnpaVTlpYW1WamRDQTlJSFJvYVhNdWRHOVBZbXBsWTNSR2IzSnRLSE53WVhKelpVMWhkSEpwZUNrN1hHNGdJQ0FnZEdocGN5NWhaR1JNYjI5d2N5aHpjR0Z5YzJWUFltcGxZM1FzSUc1U2IzZHpLVHRjYmlBZ0lDQjBhR2x6TG01dmNtMWhiR2w2WlNoemNHRnljMlZQWW1wbFkzUXBPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dkR2hwY3k1ZmIzQjBhVzl1Y3k1dFlYaEpkR1Z5WVhScGIyNXpPeUJwS3lzcElIdGNiaUFnSUNBZ0lITndZWEp6WlU5aWFtVmpkQ0E5SUhSb2FYTXVaWGh3WVc1a0tITndZWEp6WlU5aWFtVmpkQ3dnYmxKdmQzTXBPMXh1SUNBZ0lDQWdkR2hwY3k1cGJtWnNZWFJsS0hOd1lYSnpaVTlpYW1WamRDazdYRzRnSUNBZ0lDQjBhR2x6TG01dmNtMWhiR2w2WlNoemNHRnljMlZQWW1wbFkzUXBPMXh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0I3WTJ4MWMzUmxjbk1zSUdsekxDQnFjMzBnUFNCMGFHbHpMbUZ6YzJsbmJrTnNkWE4wWlhKektITndZWEp6WlU5aWFtVmpkQ3dnYmxKdmQzTXBPMXh1SUNBZ0lHTnZibk4wSUdWdFltVmtaR2x1WjNNZ1BTQmhkMkZwZENCMGFHbHpMbXhoZVc5MWRDaGpiSFZ6ZEdWeWN5d2djM0JoY25ObFQySnFaV04wTENCdVVtOTNjeWs3WEc0Z0lDQWdjbVYwZFhKdUlIdGpiSFZ6ZEdWeWN5d2daVzFpWldSWU9pQmxiV0psWkdScGJtZHpMbVZ0WW1Wa1dDd2daVzFpWldSWk9pQmxiV0psWkdScGJtZHpMbVZ0WW1Wa1dTd2dhWE1zSUdwemZUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ2JHRjViM1YwS0dOc2RYTjBaWEp6T2lCdWRXMWlaWEpiWFN3Z2MzQmhjbk5sVFdGMGNtbDRPaUJUY0dGeWMyVk5ZWFJ5YVhoUFltcGxZM1FzSUc1U2IzZHpPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQmpiMjV6ZENCbGJXSmxaRmdnUFNCdVpYY2dSbXh2WVhRek1rRnljbUY1S0c1U2IzZHpLUzVtYVd4c0tEQXBPMXh1SUNBZ0lHTnZibk4wSUdWdFltVmtXU0E5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvYmxKdmQzTXBMbVpwYkd3b01DazdYRzRnSUNBZ1kyOXVjM1FnWTJ4MWMzUmxjazFoY0RvZ2UxdGZPaUJ1ZFcxaVpYSmRPaUJ1ZFcxaVpYSmJYWDBnUFNCN2ZUdGNiaUFnSUNCamJIVnpkR1Z5Y3k1bWIzSkZZV05vS0NoamJIVnpkR1Z5TENCcEtTQTlQaUI3WEc0Z0lDQWdJQ0JwWmlBb0lXTnNkWE4wWlhKTllYQmJZMngxYzNSbGNsMHBYRzRnSUNBZ0lDQWdJR05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbDBnUFNCYlhUdGNiaUFnSUNBZ0lHTnNkWE4wWlhKTllYQmJZMngxYzNSbGNsMHVjSFZ6YUNocEtUdGNiaUFnSUNCOUtUdGNiaUFnSUNBdkx5QmpiMjV6ZENCdVEyeDFjM1JsY25NZ1BTQlBZbXBsWTNRdWEyVjVjeWhqYkhWemRHVnlUV0Z3S1M1c1pXNW5kR2c3WEc0Z0lDQWdMeThnWTI5dWMzUWdjR1Z5VW05M0lEMGdUV0YwYUM1bWJHOXZjaWhOWVhSb0xuTnhjblFvYmtOc2RYTjBaWEp6S1NrN1hHNGdJQ0FnYkdWMElHTnNkWE4wWlhKT2RXMGdQU0F3TzF4dUlDQWdJR052Ym5OMElITnZjblJsWkVOc2RYTjBaWEpPWVcxbGN5QTlJRTlpYW1WamRDNXJaWGx6S0dOc2RYTjBaWEpOWVhBcE8xeHVJQ0FnSUhOdmNuUmxaRU5zZFhOMFpYSk9ZVzFsY3k1emIzSjBLQ2hoTENCaUtTQTlQaUJqYkhWemRHVnlUV0Z3VzJJZ1lYTWdZVzU1WFM1c1pXNW5kR2dnTFNCamJIVnpkR1Z5VFdGd1cyRWdZWE1nWVc1NVhTNXNaVzVuZEdncE8xeHVJQ0FnSUd4bGRDQndaWEpTYjNjZ1BTQTJPMXh1WEc0Z0lDQWdiR1YwSUhsUFptWnpaWFFnUFNBd08xeHVJQ0FnSUdOdmJuTjBJR3hoZVc5MWRGTnBlbVVnUFNBMU8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ1kyeDFjM1JsY2s1aGJXVWdiMllnYzI5eWRHVmtRMngxYzNSbGNrNWhiV1Z6S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYkhWemRHVnlJRDBnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5VG1GdFpTQmhjeUJoYm5sZElUdGNiaUFnSUNBZ0lHTnZibk4wSUdWdFltVmtaR2x1WjNNZ1BTQmhkMkZwZENCaWFXOU1ZWGx2ZFhRb1kyeDFjM1JsY2l3Z2MzQmhjbk5sVFdGMGNtbDRMQ0F3TGpBd01TazdYRzRnSUNBZ0lDQnBaaUFvWTJ4MWMzUmxjazUxYlNBOVBUMGdjR1Z5VW05M0tTQjdYRzRnSUNBZ0lDQWdJR05zZFhOMFpYSk9kVzBnUFNBd08xeHVJQ0FnSUNBZ0lDQjVUMlptYzJWMElDczlJR3hoZVc5MWRGTnBlbVVnTHlCd1pYSlNiM2M3WEc0Z0lDQWdJQ0FnSUhCbGNsSnZkeUE5SUUxaGRHZ3VZMlZwYkNod1pYSlNiM2NnS2lBeExqVXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdZMjl1YzNRZ2IyWm1jMlYwV0NBOUlDaGpiSFZ6ZEdWeVRuVnRJQ1VnY0dWeVVtOTNLU0FxSUd4aGVXOTFkRk5wZW1VZ0x5QndaWEpTYjNjN1hHNGdJQ0FnSUNBdkx5QmpiMjV6ZENCdlptWnpaWFJaSUQwZ1RXRjBhQzVtYkc5dmNpaGpiSFZ6ZEdWeVRuVnRJQzhnY0dWeVVtOTNLU0FxSURJN1hHNWNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2daVzFpWldSa2FXNW5jeTVsYldKbFpGZ3ViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ1pXMWlaV1JZVzJOc2RYTjBaWEpiYVYxZElEMGdaVzFpWldSa2FXNW5jeTVsYldKbFpGaGJhVjBnS2lCc1lYbHZkWFJUYVhwbElDOGdjR1Z5VW05M0lDc2diMlptYzJWMFdEdGNiaUFnSUNBZ0lDQWdaVzFpWldSWlcyTnNkWE4wWlhKYmFWMWRJRDBnWlcxaVpXUmthVzVuY3k1bGJXSmxaRmxiYVYwZ0tpQnNZWGx2ZFhSVGFYcGxJQzhnY0dWeVVtOTNJQ3NnZVU5bVpuTmxkRHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJR05zZFhOMFpYSk9kVzByS3p0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIdGxiV0psWkZnc0lHVnRZbVZrV1gwN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHMWxjbWRsUTJ4MWMzUmxjbk1vWTJ4MWMzUmxjbk02SUc1MWJXSmxjbHRkTENCcE9pQnVkVzFpWlhJc0lHbzZJRzUxYldKbGNpa2dlMXh1SUNBZ0lHTnZibk4wSUdsRGJIVnpkR1Z5SUQwZ1kyeDFjM1JsY25OYmFWMDdYRzRnSUNBZ1kyOXVjM1FnYWtOc2RYTjBaWElnUFNCamJIVnpkR1Z5YzF0cVhUdGNiaUFnSUNCbWIzSWdLR3hsZENCcklEMGdNRHNnYXlBOElHTnNkWE4wWlhKekxteGxibWQwYURzZ2F5c3JLU0I3WEc0Z0lDQWdJQ0JwWmlBb1kyeDFjM1JsY25OYmExMGdQVDA5SUdwRGJIVnpkR1Z5S1Z4dUlDQWdJQ0FnSUNCamJIVnpkR1Z5YzF0clhTQTlJR2xEYkhWemRHVnlPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQndkV0pzYVdNZ1lYTnphV2R1UTJ4MWMzUmxjbk1vYzNCaGNuTmxUV0YwY21sNE9pQlRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUXNJRzVTYjNkek9pQnVkVzFpWlhJcElIdGNiaUFnSUNCc1pYUWdZMngxYzNSbGNrNTFiU0E5SURBN1hHNGdJQ0FnWTI5dWMzUWdhWE02SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUNBZ1kyOXVjM1FnYW5NNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lDQWdZMjl1YzNRZ2IzSmtaWElnUFNCTllYUm9MbVpzYjI5eUtFMWhkR2d1YldGNEtFMWhkR2d1Ykc5bk1UQW9ibEp2ZDNNcExDQXlLU2tnS3lBeE8xeHVJQ0FnSUdOdmJuTjBJRzFwYms5eVpHVnlJRDBnVFdGMGFDNXdiM2NvTVRBc0lHOXlaR1Z5S1R0Y2JpQWdJQ0JqYjI1emRDQmpiSFZ6ZEdWeWN6b2diblZ0WW1WeVcxMGdQU0J1WlhjZ1FYSnlZWGtvYmxKdmQzTXBMbVpwYkd3b0xURXBPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdhU0J2WmlCUFltcGxZM1F1YTJWNWN5aHpjR0Z5YzJWTllYUnlhWGdwS1NCN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHb2diMllnVDJKcVpXTjBMbXRsZVhNb2MzQmhjbk5sVFdGMGNtbDRXMmtnWVhNZ1lXNTVYU2twSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLRTFoZEdndWNtOTFibVFvYzNCaGNuTmxUV0YwY21sNFcya2dZWE1nWVc1NVhWdHFJR0Z6SUdGdWVWMGdLaUJ0YVc1UGNtUmxjaWtnTHlCdGFXNVBjbVJsY2lBK0lEQWdKaVpjYmlBZ0lDQWdJQ0FnSUNCemNHRnljMlZOWVhSeWFYaGJhU0JoY3lCaGJubGRXMm9nWVhNZ1lXNTVYU0FoUFQwZ1RuVnRZbVZ5S0drcElDWW1JRTUxYldKbGNpaHFLU0ErSUU1MWJXSmxjaWhwS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6TG5CMWMyZ29UblZ0WW1WeUtHa3BLVHRjYmlBZ0lDQWdJQ0FnSUNCcWN5NXdkWE5vS0U1MWJXSmxjaWhxS1NrN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dOc2RYTjBaWEp6VzA1MWJXSmxjaWhwS1YwZ0lUMDlJQzB4SUNZbUlHTnNkWE4wWlhKelcwNTFiV0psY2locUtWMGdJVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCcFppQW9ZMngxYzNSbGNuTmJUblZ0WW1WeUtHa3BYU0FoUFQwZ1kyeDFjM1JsY25OYlRuVnRZbVZ5S0dvcFhTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHBjeTV0WlhKblpVTnNkWE4wWlhKektHTnNkWE4wWlhKekxDQk9kVzFpWlhJb2FTa3NJRTUxYldKbGNpaHFLU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaGpiSFZ6ZEdWeWMxdE9kVzFpWlhJb2FTbGRJQ0U5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyeDFjM1JsY25OYlRuVnRZbVZ5S0dvcFhTQTlJR05zZFhOMFpYSnpXMDUxYldKbGNpaHBLVjA3WEc0Z0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUdsbUlDaGpiSFZ6ZEdWeWMxdE9kVzFpWlhJb2FpbGRJQ0U5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyeDFjM1JsY25OYlRuVnRZbVZ5S0drcFhTQTlJR05zZFhOMFpYSnpXMDUxYldKbGNpaHFLVjA3WEc0Z0lDQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05zZFhOMFpYSk9kVzByS3p0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05zZFhOMFpYSnpXMDUxYldKbGNpaHBLVjBnUFNCamJIVnpkR1Z5VG5WdE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWTJ4MWMzUmxjbk5iVG5WdFltVnlLR29wWFNBOUlHTnNkWE4wWlhKT2RXMDdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR1p2Y2lBb2JHVjBJR2s5TURzZ2FTQThJR05zZFhOMFpYSnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNCcFppQW9ZMngxYzNSbGNuTmJhVjBnUFQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUdOc2RYTjBaWEpPZFcwZ0t5czdYRzRnSUNBZ0lDQWdJR05zZFhOMFpYSnpXMmxkSUQwZ1kyeDFjM1JsY2s1MWJUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSHRqYkhWemRHVnljeXdnYVhNc0lHcHpmVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUIwYjA5aWFtVmpkRVp2Y20wb2MzQmhjbk5sVFdGMGNtbDRPaUJUY0dGeWMyVk5ZWFJ5YVhoU1pYTjFiSFFwT2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRZ2UxeHVJQ0FnSUdOdmJuTjBJSE53WVhKelpVOWlhbVZqZERvZ2UxdGZPaUJ1ZFcxaVpYSmRPaUI3VzE4NklHNTFiV0psY2wwNklHNTFiV0psY24xOUlEMGdlMzA3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J6Y0dGeWMyVk5ZWFJ5YVhndWFTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnYVdZZ0tDRnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkS1Z4dUlDQWdJQ0FnSUNCemNHRnljMlZQWW1wbFkzUmJjM0JoY25ObFRXRjBjbWw0TG1sYmFWMWRJRDBnZTMwN1hHNGdJQ0FnSUNCemNHRnljMlZQWW1wbFkzUmJjM0JoY25ObFRXRjBjbWw0TG1sYmFWMWRXM053WVhKelpVMWhkSEpwZUM1cVcybGRYU0E5SURFZ0xTQnpjR0Z5YzJWTllYUnlhWGd1WkdsemRHRnVZMlZiYVYwN1hHNGdJQ0FnSUNCcFppQW9JWE53WVhKelpVOWlhbVZqZEZ0emNHRnljMlZOWVhSeWFYZ3VhbHRwWFYwcFhHNGdJQ0FnSUNBZ0lITndZWEp6WlU5aWFtVmpkRnR6Y0dGeWMyVk5ZWFJ5YVhndWFsdHBYVjBnUFNCN2ZUdGNiaUFnSUNBZ0lITndZWEp6WlU5aWFtVmpkRnR6Y0dGeWMyVk5ZWFJ5YVhndWFsdHBYVjFiYzNCaGNuTmxUV0YwY21sNExtbGJhVjFkSUQwZ01TQXRJSE53WVhKelpVMWhkSEpwZUM1a2FYTjBZVzVqWlZ0cFhUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSE53WVhKelpVOWlhbVZqZER0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lXUmtURzl2Y0hNb2MzQmhjbk5sVDJKcVpXTjBPaUJUY0dGeWMyVk5ZWFJ5YVhoUFltcGxZM1FzSUc1U2IzZHpPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRzVTYjNkek95QnBLeXNwSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hjM0JoY25ObFQySnFaV04wVzJsZEtWeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYVYwZ1BTQjdmVHRjYmlBZ0lDQWdJSE53WVhKelpVOWlhbVZqZEZ0cFhWdHBYU0E5SUhSb2FYTXVYMjl3ZEdsdmJuTXViWFZzZEVaaFkzUnZjanRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJRzV2Y20xaGJHbDZaU2h6Y0dGeWMyVlBZbXBsWTNRNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDa2dlMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdhU0J2WmlCUFltcGxZM1F1YTJWNWN5aHpjR0Z5YzJWUFltcGxZM1FwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J5YjNjZ1BTQnpjR0Z5YzJWUFltcGxZM1JiYVNCaGN5QmhibmxkTzF4dUlDQWdJQ0FnYkdWMElITjFiU0E5SURBN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHb2diMllnVDJKcVpXTjBMbXRsZVhNb2NtOTNLU2xjYmlBZ0lDQWdJQ0FnYzNWdElDczlJSEp2ZDF0cUlHRnpJR0Z1ZVYwN1hHNGdJQ0FnSUNCcFppQW9jM1Z0SUQwOVBTQXdLU0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYWlCdlppQlBZbXBsWTNRdWEyVjVjeWh5YjNjcEtWeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYVNCaGN5QmhibmxkVzJvZ1lYTWdZVzU1WFNBdlBTQnpkVzA3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JsZUhCaGJtUW9jM0JoY25ObFQySnFaV04wT2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRc0lHNVNiM2R6T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JqYjI1emRDQmxlSEJoYm1SbFpFOWlhbVZqZERvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMElEMGdlMzA3WEc0Z0lDQWdZMjl1YzNRZ2IzSmtaWElnUFNCTllYUm9MbVpzYjI5eUtFMWhkR2d1YldGNEtFMWhkR2d1Ykc5bk1UQW9ibEp2ZDNNcExDQXlLU2tnS3lBeE8xeHVJQ0FnSUdOdmJuTjBJRzFwYms5eVpHVnlJRDBnVFdGMGFDNXdiM2NvTVRBc0lHOXlaR1Z5S1R0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1U2IzZHpPeUJwS3lzcElIdGNiaUFnSUNBZ0lHbG1JQ2doYzNCaGNuTmxUMkpxWldOMFcybGRLVnh1SUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQzh2SUdOdmJuTjBJSEp2ZHlBOUlITndZWEp6WlU5aWFtVmpkRnRwWFR0Y2JpQWdJQ0FnSUdWNGNHRnVaR1ZrVDJKcVpXTjBXMmxkSUQwZ2UzMDdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnFJRDBnYVRzZ2FpQThJRzVTYjNkek95QnFLeXNwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0Z6Y0dGeWMyVlBZbXBsWTNSYmFWMC9MbHRxWFNsY2JpQWdJQ0FnSUNBZ0lDQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2RtRnNJRDBnZEdocGN5NW5aWFJGZUhCaGJtUldZV3gxWlNoemNHRnljMlZQWW1wbFkzUXNJR2tzSUdvcE95QXZMM0J5ZFc1cGJtY2djM1JsY0Z4dUlDQWdJQ0FnSUNCcFppQW9UV0YwYUM1eWIzVnVaQ2gyWVd3Z0tpQnRhVzVQY21SbGNpa2dMeUJ0YVc1UGNtUmxjaUErSURBcElIdGNiaUFnSUNBZ0lDQWdJQ0JsZUhCaGJtUmxaRTlpYW1WamRGdHBYVnRxWFNBOUlIWmhiRHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9JV1Y0Y0dGdVpHVmtUMkpxWldOMFcycGRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ1pYaHdZVzVrWldSUFltcGxZM1JiYWwwZ1BTQjdmVHRjYmlBZ0lDQWdJQ0FnSUNCbGVIQmhibVJsWkU5aWFtVmpkRnRxWFZ0cFhTQTlJSFpoYkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdaWGh3WVc1a1pXUlBZbXBsWTNRN1hHNGdJSDFjYmx4dUlDQXZMeUJ3Y21sMllYUmxJSEJ5ZFc1bEtISnZkem9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wVzI1MWJXSmxjbDBwSUh0Y2JseHVJQ0F2THlCOVhHNWNiaUFnY0hKcGRtRjBaU0JwYm1ac1lYUmxLSE53WVhKelpVOWlhbVZqZERvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMEtTQjdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQnBJRzltSUU5aWFtVmpkQzVyWlhsektITndZWEp6WlU5aWFtVmpkQ2twSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSEp2ZHlBOUlITndZWEp6WlU5aWFtVmpkRnRwSUdGeklHRnVlVjA3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdvZ2IyWWdUMkpxWldOMExtdGxlWE1vY205M0tTbGNiaUFnSUNBZ0lDQWdjM0JoY25ObFQySnFaV04wVzJrZ1lYTWdZVzU1WFZ0cUlHRnpJR0Z1ZVYwZ1BTQk5ZWFJvTG5CdmR5aHpjR0Z5YzJWUFltcGxZM1JiYVNCaGN5QmhibmxkVzJvZ1lYTWdZVzU1WFN3Z2RHaHBjeTVmYjNCMGFXOXVjeTVwYm1ac1lYUmxSbUZqZEc5eUtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHZGxkRVY0Y0dGdVpGWmhiSFZsS0hOd1lYSnpaVTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBMQ0JwT2lCaGJua3NJR282SUdGdWVTa2dlMXh1SUNBZ0lHeGxkQ0IyWVd3Z1BTQXdPMXh1SUNBZ0lHTnZibk4wSUdOMWNuSmxiblJKYm1SbGVHVnpJRDBnVDJKcVpXTjBMbXRsZVhNb2MzQmhjbk5sVDJKcVpXTjBXMmxkSUQ4L0lIdDlLVHRjYmlBZ0lDQmpiMjV6ZENCdmRHaGxja2x1WkdWNFpYTWdQU0JQWW1wbFkzUXVhMlY1Y3loemNHRnljMlZQWW1wbFkzUmJhbDBnUHo4Z2UzMHBPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdheUJ2WmlCamRYSnlaVzUwU1c1a1pYaGxjeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHOTBhR1Z5U1c1a1pYaGxjeTVwYm1Oc2RXUmxjeWhyS1NsY2JpQWdJQ0FnSUNBZ2RtRnNJQ3M5SUhOd1lYSnpaVTlpYW1WamRGdHBYVnRySUdGeklHRnVlVjBnS2lCemNHRnljMlZQWW1wbFkzUmJhbDFiYXlCaGN5QmhibmxkTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2RtRnNPMXh1SUNCOVhHNTlYRzVjYmlKZGZRPT0iLCJpbXBvcnQgeyBTcGFyc2VNYXRyaXhTZXJ2aWNlIH0gZnJvbSAnLi4vZGlzdGFuY2UtbWF0cml4L3NwYXJzZS1tYXRyaXgtc2VydmljZSc7XG5pbXBvcnQgeyBNQ0xTcGFyc2VSZWR1Y2VyIH0gZnJvbSAnLi9tYXJjb3YtY2x1c3Rlcic7XG5vbm1lc3NhZ2UgPSBhc3luYyAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB7IGRhdGEsIHRocmVzaG9sZCwgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QsIGRpc3RhbmNlRm5BcmdzLCBkaXN0YW5jZUZucywgbWF4SXRlcmF0aW9ucyB9ID0gZXZlbnQuZGF0YTtcbiAgICBjb25zdCBzcGFyc2UgPSBhd2FpdCBuZXcgU3BhcnNlTWF0cml4U2VydmljZSgpXG4gICAgICAgIC5jYWxjTXVsdGlDb2x1bW4oZGF0YSwgZGlzdGFuY2VGbnMsIHRocmVzaG9sZCAvIDEwMCwgZGlzdGFuY2VGbkFyZ3MsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBuZXcgTUNMU3BhcnNlUmVkdWNlcih7IG1heEl0ZXJhdGlvbnM6IG1heEl0ZXJhdGlvbnMgPz8gNSB9KS50cmFuc2Zvcm0oc3BhcnNlLCBkYXRhWzBdLmxlbmd0aCk7XG4gICAgcG9zdE1lc3NhZ2UoeyByZXMgfSk7XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldOc0xYZHZjbXRsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbTFqYkMxM2IzSnJaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVRkRMRzFDUVVGdFFpeEZRVUZETEUxQlFVMHNNRU5CUVRCRExFTkJRVU03UVVGSE4wVXNUMEZCVHl4RlFVRkRMR2RDUVVGblFpeEZRVUZETEUxQlFVMHNhMEpCUVd0Q0xFTkJRVU03UVVGRmJFUXNVMEZCVXl4SFFVRkhMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJUdEpRVU14UWl4TlFVRk5MRVZCUVVNc1NVRkJTU3hGUVVGRkxGTkJRVk1zUlVGQlJTeFBRVUZQTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzWTBGQll5eEZRVUZGTEZkQlFWY3NSVUZCUlN4aFFVRmhMRVZCUVVNc1IwRkhhRUlzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXp0SlFVTXhSaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVsQlFVa3NiVUpCUVcxQ0xFVkJRVVU3VTBGRE0wTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hYUVVGWExFVkJRVVVzVTBGQlV5eEhRVUZITEVkQlFVY3NSVUZCUlN4alFVRmpMRVZCUVVVc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1NVRkRia2NzVFVGQlRTeEhRVUZITEVkQlFVY3NUVUZCVFN4SlFVRkpMR2RDUVVGblFpeERRVUZETEVWQlFVTXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1NVRkJTU3hEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUXpsSExGZEJRVmNzUTBGQlF5eEZRVUZETEVkQlFVY3NSVUZCUXl4RFFVRkRMRU5CUVVNN1FVRkRja0lzUTBGQlF5eERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0VGNHRnljMlZOWVhSeWFYaFRaWEoyYVdObGZTQm1jbTl0SUNjdUxpOWthWE4wWVc1alpTMXRZWFJ5YVhndmMzQmhjbk5sTFcxaGRISnBlQzF6WlhKMmFXTmxKenRjYm1sdGNHOXlkQ0I3UkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaSDBnWm5KdmJTQW5MaTR2WkdsemRHRnVZMlV0YldGMGNtbDRMM1I1Y0dWekp6dGNibWx0Y0c5eWRDQjdTMjV2ZDI1TlpYUnlhV056ZlNCbWNtOXRJQ2N1TGk5MGVYQmxaQzF0WlhSeWFXTnpKenRjYm1sdGNHOXlkQ0I3VFVOTVUzQmhjbk5sVW1Wa2RXTmxjbjBnWm5KdmJTQW5MaTl0WVhKamIzWXRZMngxYzNSbGNpYzdYRzVjYm05dWJXVnpjMkZuWlNBOUlHRnplVzVqSUNobGRtVnVkQ2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQjdaR0YwWVN3Z2RHaHlaWE5vYjJ4a0xDQjNaV2xuYUhSekxDQmhaMmR5WldkaGRHbHZiazFsZEdodlpDd2daR2x6ZEdGdVkyVkdia0Z5WjNNc0lHUnBjM1JoYm1ObFJtNXpMQ0J0WVhoSmRHVnlZWFJwYjI1emZUcGNiaUFnSUh0a1lYUmhPaUJoYm5sYlhWdGRMQ0IwYUhKbGMyaHZiR1E2SUc1MWJXSmxjaXhjYmlBZ0lDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhTd2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUTZJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUXNYRzRnSUNBZ1pHbHpkR0Z1WTJWR2JuTTZJRXR1YjNkdVRXVjBjbWxqYzF0ZExDQmthWE4wWVc1alpVWnVRWEpuY3pvZ1lXNTVXMTBzSUcxaGVFbDBaWEpoZEdsdmJuTTZJRzUxYldKbGNuMGdQU0JsZG1WdWRDNWtZWFJoTzF4dUlDQmpiMjV6ZENCemNHRnljMlVnUFNCaGQyRnBkQ0J1WlhjZ1UzQmhjbk5sVFdGMGNtbDRVMlZ5ZG1salpTZ3BYRzRnSUNBZ0xtTmhiR05OZFd4MGFVTnZiSFZ0Ymloa1lYUmhMQ0JrYVhOMFlXNWpaVVp1Y3l3Z2RHaHlaWE5vYjJ4a0lDOGdNVEF3TENCa2FYTjBZVzVqWlVadVFYSm5jeXdnZDJWcFoyaDBjeXdnWVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlFwTzF4dUlDQmpiMjV6ZENCeVpYTWdQU0JoZDJGcGRDQnVaWGNnVFVOTVUzQmhjbk5sVW1Wa2RXTmxjaWg3YldGNFNYUmxjbUYwYVc5dWN6b2diV0Y0U1hSbGNtRjBhVzl1Y3lBL1B5QTFmU2t1ZEhKaGJuTm1iM0p0S0hOd1lYSnpaU3dnWkdGMFlWc3dYUzVzWlc1bmRHZ3BPMXh1SUNCd2IzTjBUV1Z6YzJGblpTaDdjbVZ6ZlNrN1hHNTlPMXh1SWwxOSIsImltcG9ydCB7IERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgY29uc3QgaXNOaWwgPSAoeCkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0U21hbGxlcihkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgIGlmIChudW0gPiBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGggLSAxXSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExhcmdlcihkaXN0YW5jZXNBciwgaW5kZXhlcywgbnVtLCBpbmRleCkge1xuICAgIGlmIChudW0gPCBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGggLSAxXSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPiB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldEFnZ3JlZ2F0aW9uRnVuY3Rpb24oYWdncmVnYXRpb25NZXRob2QsIHdlaWdodHMpIHtcbiAgICBzd2l0Y2ggKGFnZ3JlZ2F0aW9uTWV0aG9kKSB7XG4gICAgICAgIGNhc2UgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMuTUFOSEFUVEFOOlxuICAgICAgICAgICAgcmV0dXJuICh2cykgPT4gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyB2YWwgKiB3ZWlnaHRzW2lkeF0sIDApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuICh2cykgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGV1Y2xpZGVhblxuICAgICAgICAgICAgICAgIGNvbnN0IHN1bSA9IHZzLnJlZHVjZSgoYWNjLCB2YWwsIGlkeCkgPT4gYWNjICsgKHZhbCAqIHdlaWdodHNbaWR4XSkgKiogMiwgMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xuICAgICAgICAgICAgfTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoxZEdsc2N5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVRSQ0xEQkNRVUV3UWl4RlFVRkRMRTFCUVUwc1UwRkJVeXhEUVVGRE8wRkJSVGxGTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzVTBGQlV5eERRVUZETzBGQlJTOUVMRTFCUVUwc1ZVRkJWU3hoUVVGaExFTkJRVU1zVjBGQmNVSXNSVUZCUlN4UFFVRnBRaXhGUVVGRkxFZEJRVmNzUlVGQlJTeExRVUZoTzBsQlEyaEhMRWxCUVVrc1IwRkJSeXhIUVVGSExGZEJRVmNzUTBGQlF5eFhRVUZYTEVOQlFVTXNUVUZCVFN4SFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONlF5eFBRVUZQTzBsQlJWUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6RkVMRmRCUVZjc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5zUWl4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRlRU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJRc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRM2hETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1dVRkJXU3hEUVVGRExGZEJRWEZDTEVWQlFVVXNUMEZCYVVJc1JVRkJSU3hIUVVGWExFVkJRVVVzUzBGQllUdEpRVU12Uml4SlFVRkpMRWRCUVVjc1IwRkJSeXhYUVVGWExFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNSMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla01zVDBGQlR6dEpRVVZVTEUxQlFVMHNWMEZCVnl4SFFVRkhMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU14UkN4WFFVRlhMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGJFSXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTNoRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVONFF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSE5DUVVGelFpeERRVU53UXl4cFFrRkJORU1zUlVGQlJTeFBRVUZwUWp0SlFVVXZSQ3hSUVVGUkxHbENRVUZwUWl4RlFVRkZPMUZCUTNwQ0xFdEJRVXNzTUVKQlFUQkNMRU5CUVVNc1UwRkJVenRaUVVOMlF5eFBRVUZQTEVOQlFVTXNSVUZCV1N4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNKR08xbEJRMFVzVDBGQlR5eERRVUZETEVWQlFWa3NSVUZCUlN4RlFVRkZPMmRDUVVOMFFpeFpRVUZaTzJkQ1FVTmFMRTFCUVUwc1IwRkJSeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBVc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNoQ0xFTkJRVU1zUTBGQlF6dExRVU5NTzBGQlEwZ3NRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkN3Z1JHbHpkR0Z1WTJWQloyZHlaV2RoZEdsdmJrMWxkR2h2WkhOOUlHWnliMjBnSnk0dmRIbHdaWE1uTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYVhOT2FXd2dQU0FvZURvZ1lXNTVLU0E5UGlCNElEMDlQU0J1ZFd4c0lIeDhJSGdnUFQwOUlIVnVaR1ZtYVc1bFpEdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2x1YzJWeWRGTnRZV3hzWlhJb1pHbHpkR0Z1WTJWelFYSTZJRzUxYldKbGNsdGRMQ0JwYm1SbGVHVnpPaUJ1ZFcxaVpYSmJYU3dnYm5WdE9pQnVkVzFpWlhJc0lHbHVaR1Y0T2lCdWRXMWlaWElwSUh0Y2JpQWdhV1lnS0c1MWJTQStJR1JwYzNSaGJtTmxjMEZ5VzJScGMzUmhibU5sYzBGeUxteGxibWQwYUMweFhTbGNiaUFnSUNCeVpYUjFjbTQ3WEc1Y2JpQWdZMjl1YzNRZ2JtVjNVRzl6YVhScGIyNGdQU0JrYVhOMFlXNWpaWE5CY2k1bWFXNWtTVzVrWlhnb0tIWXBJRDArSUc1MWJTQThJSFlwTzF4dUlDQmthWE4wWVc1alpYTkJjaTV3YjNBb0tUdGNiaUFnWkdsemRHRnVZMlZ6UVhJdWMzQnNhV05sS0c1bGQxQnZjMmwwYVc5dUxDQXdMQ0J1ZFcwcE8xeHVJQ0JwYm1SbGVHVnpMbkJ2Y0NncE8xeHVJQ0JwYm1SbGVHVnpMbk53YkdsalpTaHVaWGRRYjNOcGRHbHZiaXdnTUN3Z2FXNWtaWGdwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhVzV6WlhKMFRHRnlaMlZ5S0dScGMzUmhibU5sYzBGeU9pQnVkVzFpWlhKYlhTd2dhVzVrWlhobGN6b2diblZ0WW1WeVcxMHNJRzUxYlRvZ2JuVnRZbVZ5TENCcGJtUmxlRG9nYm5WdFltVnlLU0I3WEc0Z0lHbG1JQ2h1ZFcwZ1BDQmthWE4wWVc1alpYTkJjbHRrYVhOMFlXNWpaWE5CY2k1c1pXNW5kR2d0TVYwcFhHNGdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lHTnZibk4wSUc1bGQxQnZjMmwwYVc5dUlEMGdaR2x6ZEdGdVkyVnpRWEl1Wm1sdVpFbHVaR1Y0S0NoMktTQTlQaUJ1ZFcwZ1BpQjJLVHRjYmlBZ1pHbHpkR0Z1WTJWelFYSXVjRzl3S0NrN1hHNGdJR1JwYzNSaGJtTmxjMEZ5TG5Od2JHbGpaU2h1WlhkUWIzTnBkR2x2Yml3Z01Dd2diblZ0S1R0Y2JpQWdhVzVrWlhobGN5NXdiM0FvS1R0Y2JpQWdhVzVrWlhobGN5NXpjR3hwWTJVb2JtVjNVRzl6YVhScGIyNHNJREFzSUdsdVpHVjRLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRUZuWjNKbFoyRjBhVzl1Um5WdVkzUnBiMjRvWEc0Z0lHRm5aM0psWjJGMGFXOXVUV1YwYUc5a09pQkVhWE4wWVc1alpVRm5aM0psWjJGMGFXOXVUV1YwYUc5a0xDQjNaV2xuYUhSek9pQnVkVzFpWlhKYlhWeHVLVG9nS0haaGJIVmxjem9nYm5WdFltVnlXMTBwSUQwK0lHNTFiV0psY2lCN1hHNGdJSE4zYVhSamFDQW9ZV2RuY21WbllYUnBiMjVOWlhSb2IyUXBJSHRjYmlBZ0lDQmpZWE5sSUVScGMzUmhibU5sUVdkbmNtVm5ZWFJwYjI1TlpYUm9iMlJ6TGsxQlRraEJWRlJCVGpwY2JpQWdJQ0FnSUhKbGRIVnliaUFvZG5NNklHNTFiV0psY2x0ZEtTQTlQaUIyY3k1eVpXUjFZMlVvS0dGall5d2dkbUZzTENCcFpIZ3BJRDArSUdGall5QXJJSFpoYkNBcUlIZGxhV2RvZEhOYmFXUjRYU3dnTUNrN1hHNGdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJSEpsZEhWeWJpQW9kbk02SUc1MWJXSmxjbHRkS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQzh2SUdWMVkyeHBaR1ZoYmx4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6ZFcwZ1BTQjJjeTV5WldSMVkyVW9LR0ZqWXl3Z2RtRnNMQ0JwWkhncElEMCtJR0ZqWXlBcklDaDJZV3dnS2lCM1pXbG5hSFJ6VzJsa2VGMHBJQ29xSURJc0lEQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdUV0YwYUM1emNYSjBLSE4xYlNrN1hHNGdJQ0FnSUNCOU8xeHVJQ0I5WEc1OVhHNGlYWDA9IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4vLyB0aGUgc3RhcnR1cCBmdW5jdGlvblxuX193ZWJwYWNrX3JlcXVpcmVfXy54ID0gKCkgPT4ge1xuXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcblx0Ly8gVGhpcyBlbnRyeSBtb2R1bGUgZGVwZW5kcyBvbiBvdGhlciBsb2FkZWQgY2h1bmtzIGFuZCBleGVjdXRpb24gbmVlZCB0byBiZSBkZWxheWVkXG5cdHZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXy5PKHVuZGVmaW5lZCwgWzU5MF0sICgpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fKDIzNTcpKSlcblx0X193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyhfX3dlYnBhY2tfZXhwb3J0c19fKTtcblx0cmV0dXJuIF9fd2VicGFja19leHBvcnRzX187XG59O1xuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmYgPSB7fTtcbi8vIFRoaXMgZmlsZSBjb250YWlucyBvbmx5IHRoZSBlbnRyeSBjaHVuay5cbi8vIFRoZSBjaHVuayBsb2FkaW5nIGZ1bmN0aW9uIGZvciBhZGRpdGlvbmFsIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5lID0gKGNodW5rSWQpID0+IHtcblx0cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uZikucmVkdWNlKChwcm9taXNlcywga2V5KSA9PiB7XG5cdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mW2tleV0oY2h1bmtJZCwgcHJvbWlzZXMpO1xuXHRcdHJldHVybiBwcm9taXNlcztcblx0fSwgW10pKTtcbn07IiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzIGFuZCBzaWJsaW5nIGNodW5rcyBmb3IgdGhlIGVudHJ5cG9pbnRcbl9fd2VicGFja19yZXF1aXJlX18udSA9IChjaHVua0lkKSA9PiB7XG5cdC8vIHJldHVybiB1cmwgZm9yIGZpbGVuYW1lcyBiYXNlZCBvbiB0ZW1wbGF0ZVxuXHRyZXR1cm4gXCJcIiArIGNodW5rSWQgKyBcIi5qc1wiO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCJ2YXIgc2NyaXB0VXJsO1xuaWYgKF9fd2VicGFja19yZXF1aXJlX18uZy5pbXBvcnRTY3JpcHRzKSBzY3JpcHRVcmwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcubG9jYXRpb24gKyBcIlwiO1xudmFyIGRvY3VtZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmRvY3VtZW50O1xuaWYgKCFzY3JpcHRVcmwgJiYgZG9jdW1lbnQpIHtcblx0aWYgKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQpXG5cdFx0c2NyaXB0VXJsID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7XG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkge1xuXHRcdFx0dmFyIGkgPSBzY3JpcHRzLmxlbmd0aCAtIDE7XG5cdFx0XHR3aGlsZSAoaSA+IC0xICYmICFzY3JpcHRVcmwpIHNjcmlwdFVybCA9IHNjcmlwdHNbaS0tXS5zcmM7XG5cdFx0fVxuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBzZWxmLmxvY2F0aW9uICsgXCJcIjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBjaHVua3Ncbi8vIFwiMVwiIG1lYW5zIFwiYWxyZWFkeSBsb2FkZWRcIlxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0NzA5OiAxXG59O1xuXG4vLyBpbXBvcnRTY3JpcHRzIGNodW5rIGxvYWRpbmdcbnZhciBpbnN0YWxsQ2h1bmsgPSAoZGF0YSkgPT4ge1xuXHR2YXIgW2NodW5rSWRzLCBtb3JlTW9kdWxlcywgcnVudGltZV0gPSBkYXRhO1xuXHRmb3IodmFyIG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcblx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0fVxuXHR9XG5cdGlmKHJ1bnRpbWUpIHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cdHdoaWxlKGNodW5rSWRzLmxlbmd0aClcblx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZHMucG9wKCldID0gMTtcblx0cGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24oZGF0YSk7XG59O1xuX193ZWJwYWNrX3JlcXVpcmVfXy5mLmkgPSAoY2h1bmtJZCwgcHJvbWlzZXMpID0+IHtcblx0Ly8gXCIxXCIgaXMgdGhlIHNpZ25hbCBmb3IgXCJhbHJlYWR5IGxvYWRlZFwiXG5cdGlmKCFpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pIHtcblx0XHRpZih0cnVlKSB7IC8vIGFsbCBjaHVua3MgaGF2ZSBKU1xuXHRcdFx0aW1wb3J0U2NyaXB0cyhfX3dlYnBhY2tfcmVxdWlyZV9fLnAgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLnUoY2h1bmtJZCkpO1xuXHRcdH1cblx0fVxufTtcblxudmFyIGNodW5rTG9hZGluZ0dsb2JhbCA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtlZGFcIl0gPSBzZWxmW1wid2VicGFja0NodW5rZWRhXCJdIHx8IFtdO1xudmFyIHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uID0gY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2guYmluZChjaHVua0xvYWRpbmdHbG9iYWwpO1xuY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2ggPSBpbnN0YWxsQ2h1bms7XG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCIvLyBydW4gc3RhcnR1cFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLngoKTtcbiJdLCJuYW1lcyI6WyJkZWZlcnJlZCIsIm5leHQiLCJhc3luYyIsImJpb0xheW91dCIsImNsdXN0ZXIiLCJzcGFyc2VPYmplY3QiLCJ0aHJlc2hvbGQiLCJuIiwibGVuZ3RoIiwiaXMiLCJqcyIsImkiLCJqIiwiYSIsImIiLCJwdXNoIiwiZW1iZWRYIiwiRmxvYXQzMkFycmF5IiwiZmlsbCIsIm1hcCIsIk1hdGgiLCJyYW5kb20iLCJlbWJlZFkiLCJ4VmVsb2NpdGllcyIsInlWZWxvY2l0aWVzIiwidGVtcGVyYXR1cmUiLCJpZHgiLCJkeCIsImR5IiwiYWJzIiwidmVjU2l6ZSIsInNxcnQiLCJtaW5YIiwibWluWSIsIm1heFgiLCJtYXhZIiwibWluIiwibWF4IiwicmFuZ2VYIiwicmFuZ2VZIiwiZ2V0TGF5b3V0RW1iZWRkaW5ncyIsImRlZmF1bHRNQ0xPcHRpb25zIiwiZXhwYW5kRmFjdG9yIiwibWF4SXRlcmF0aW9ucyIsImluZmxhdGVGYWN0b3IiLCJtdWx0RmFjdG9yIiwiTUNMU3BhcnNlUmVkdWNlciIsIl9vcHRpb25zIiwiY29uc3RydWN0b3IiLCJvcHRzIiwidGhpcyIsInNwYXJzZU1hdHJpeCIsIm5Sb3dzIiwidG9PYmplY3RGb3JtIiwiYWRkTG9vcHMiLCJub3JtYWxpemUiLCJleHBhbmQiLCJpbmZsYXRlIiwiY2x1c3RlcnMiLCJhc3NpZ25DbHVzdGVycyIsImVtYmVkZGluZ3MiLCJsYXlvdXQiLCJjbHVzdGVyTWFwIiwiZm9yRWFjaCIsImNsdXN0ZXJOdW0iLCJzb3J0ZWRDbHVzdGVyTmFtZXMiLCJPYmplY3QiLCJrZXlzIiwic29ydCIsInBlclJvdyIsInlPZmZzZXQiLCJjbHVzdGVyTmFtZSIsImNlaWwiLCJvZmZzZXRYIiwibWVyZ2VDbHVzdGVycyIsImlDbHVzdGVyIiwiakNsdXN0ZXIiLCJrIiwib3JkZXIiLCJmbG9vciIsImxvZzEwIiwibWluT3JkZXIiLCJwb3ciLCJBcnJheSIsInJvdW5kIiwiTnVtYmVyIiwiZGlzdGFuY2UiLCJyb3ciLCJzdW0iLCJleHBhbmRlZE9iamVjdCIsInZhbCIsImdldEV4cGFuZFZhbHVlIiwiY3VycmVudEluZGV4ZXMiLCJvdGhlckluZGV4ZXMiLCJpbmNsdWRlcyIsIm9ubWVzc2FnZSIsImV2ZW50IiwiZGF0YSIsIndlaWdodHMiLCJhZ2dyZWdhdGlvbk1ldGhvZCIsImRpc3RhbmNlRm5BcmdzIiwiZGlzdGFuY2VGbnMiLCJzcGFyc2UiLCJjYWxjTXVsdGlDb2x1bW4iLCJyZXMiLCJ0cmFuc2Zvcm0iLCJwb3N0TWVzc2FnZSIsImlzTmlsIiwieCIsImluc2VydFNtYWxsZXIiLCJkaXN0YW5jZXNBciIsImluZGV4ZXMiLCJudW0iLCJpbmRleCIsIm5ld1Bvc2l0aW9uIiwiZmluZEluZGV4IiwidiIsInBvcCIsInNwbGljZSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsInVuZGVmaW5lZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibSIsIl9fd2VicGFja19leHBvcnRzX18iLCJPIiwicmVzdWx0IiwiY2h1bmtJZHMiLCJmbiIsInByaW9yaXR5Iiwibm90RnVsZmlsbGVkIiwiSW5maW5pdHkiLCJmdWxmaWxsZWQiLCJldmVyeSIsImtleSIsInIiLCJkIiwiZGVmaW5pdGlvbiIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJmIiwiZSIsImNodW5rSWQiLCJQcm9taXNlIiwiYWxsIiwicmVkdWNlIiwicHJvbWlzZXMiLCJ1IiwiZyIsImdsb2JhbFRoaXMiLCJGdW5jdGlvbiIsIndpbmRvdyIsIm9iaiIsInByb3AiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzY3JpcHRVcmwiLCJpbXBvcnRTY3JpcHRzIiwibG9jYXRpb24iLCJkb2N1bWVudCIsImN1cnJlbnRTY3JpcHQiLCJzcmMiLCJzY3JpcHRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJFcnJvciIsInJlcGxhY2UiLCJwIiwic2VsZiIsImluc3RhbGxlZENodW5rcyIsImNodW5rTG9hZGluZ0dsb2JhbCIsInBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uIiwiYmluZCIsIm1vcmVNb2R1bGVzIiwicnVudGltZSIsInRoZW4iXSwic291cmNlUm9vdCI6IiJ9
|
|
1
|
+
var eda;(()=>{"use strict";var t,e,r={2357:(t,e,r)=>{var o=r(2590);async function n(t,e,r){const o=t.length,n=[],s=[];for(let a=0;a<o;a++)for(let l=a+1;l<o;l++){const o=t[a],i=t[l];e[o]?.[i]>=r&&(n.push(a),s.push(l))}return function(t,e,r){const o=new Float32Array(r.length).fill(0).map((()=>10*Math.random())),n=new Float32Array(r.length).fill(0).map((()=>10*Math.random())),s=new Float32Array(r.length).fill(0),a=new Float32Array(r.length).fill(0);for(let l=0;l<100;l++){const i=1-l/100;s.fill(0),a.fill(0);for(let r=0;r<t.length;r++){const l=t[r],c=e[r],f=o[l]-o[c],h=n[l]-n[c];Math.abs(f)>=1&&(s[l]-=i*f,s[c]+=i*f),Math.abs(h)>=1&&(a[l]-=i*h,a[c]+=i*h)}for(let t=0;t<r.length;t++){const e=Math.sqrt(s[t]*s[t]+a[t]*a[t]);e>0&&(o[t]+=s[t]/e*i,n[t]+=a[t]/e*i)}}let l=o[0],i=n[0],c=o[0],f=n[0];for(let t=1;t<r.length;t++)l=Math.min(l,o[t]),i=Math.min(i,n[t]),c=Math.max(c,o[t]),f=Math.max(f,n[t]);let h=c-l,u=f-i;0===h&&(h=c);for(let t=0;t<r.length;t++)o[t]=(o[t]-l)/h/2+.5;0===u&&(u=f);for(let t=0;t<r.length;t++)n[t]=(n[t]-i)/u/2+.5;return{embedX:o,embedY:n}}(n,s,t)}const s={expandFactor:2,maxIterations:5,inflateFactor:2,multFactor:1};class a{_options;constructor(t={}){this._options={...s,...t}}async transform(t,e){let r=this.toObjectForm(t);if(this._options.maxIterations>0){this.addLoops(r,e),this.normalize(r);for(let t=0;t<this._options.maxIterations;t++)r=this.expand(r,e),this.inflate(r),this.normalize(r)}const{clusters:o,is:n,js:s}=this.assignClusters(r,e);this.correctClusters(o);const a=await this.layout(o,r,e);return{clusters:o,embedX:a.embedX,embedY:a.embedY,is:n,js:s}}correctClusters(t){const e={};for(const r of t)e[r]||(e[r]=0),e[r]++;const r=Object.keys(e).map(Number).sort(((t,r)=>e[t]-e[r])),o={};r.forEach(((t,e)=>o[t]=e+1));for(let e=0;e<t.length;e++)t[e]=o[t[e]]}async layout(t,e,r){const o=new Float32Array(r).fill(0),s=new Float32Array(r).fill(0),a={};t.forEach(((t,e)=>{a[t]||(a[t]=[]),a[t].push(e)}));let l=0;const i=Object.keys(a);i.sort(((t,e)=>a[e].length-a[t].length));let c=6,f=0;for(const t of i){const r=a[t],i=await n(r,e,.001);l===Math.ceil(c/1.5)&&(l=0,f+=5/c,c=Math.ceil(1.5*c));const h=l%c*5/c*1.5;for(let t=0;t<i.embedX.length;t++)o[r[t]]=5*i.embedX[t]/c+h,s[r[t]]=5*i.embedY[t]/c+f;l++}return{embedX:o,embedY:s}}mergeClusters(t,e,r){const o=t[e],n=t[r];for(let e=0;e<t.length;e++)t[e]===n&&(t[e]=o)}assignClusters(t,e){let r=0;const o=[],n=[],s=Math.floor(Math.max(Math.log10(e),2))+1,a=Math.pow(10,s),l=new Array(e).fill(-1);for(const e of Object.keys(t))for(const s of Object.keys(t[e]))Math.round(t[e][s]*a)/a>0&&t[e][s]!==Number(e)&&Number(s)>Number(e)&&(o.push(Number(e)),n.push(Number(s)),-1!==l[Number(e)]&&-1!==l[Number(s)]?l[Number(e)]!==l[Number(s)]&&this.mergeClusters(l,Number(e),Number(s)):-1!==l[Number(e)]?l[Number(s)]=l[Number(e)]:-1!==l[Number(s)]?l[Number(e)]=l[Number(s)]:(r++,l[Number(e)]=r,l[Number(s)]=r));for(let t=0;t<l.length;t++)-1===l[t]&&(r++,l[t]=r);return{clusters:l,is:o,js:n}}toObjectForm(t){const e={};for(let r=0;r<t.i.length;r++)e[t.i[r]]||(e[t.i[r]]={}),e[t.i[r]][t.j[r]]=1-t.distance[r],e[t.j[r]]||(e[t.j[r]]={}),e[t.j[r]][t.i[r]]=1-t.distance[r];return e}addLoops(t,e){for(let r=0;r<e;r++)t[r]||(t[r]={}),t[r][r]=this._options.multFactor}normalize(t){for(const e of Object.keys(t)){const r=t[e];let o=0;for(const t of Object.keys(r))o+=r[t];if(0!==o)for(const n of Object.keys(r))t[e][n]/=o}}expand(t,e){const r={},o=Math.floor(Math.max(Math.log10(e),2))+1,n=Math.pow(10,o);for(let o=0;o<e;o++)if(t[o]){r[o]={};for(let s=o;s<e;s++){if(!t[o]?.[s])continue;const e=this.getExpandValue(t,o,s);Math.round(e*n)/n>0&&(r[o][s]=e,r[s]||(r[s]={}),r[s][o]=e)}}return r}inflate(t){for(const e of Object.keys(t)){const r=t[e];for(const o of Object.keys(r))t[e][o]=Math.pow(t[e][o],this._options.inflateFactor)}}getExpandValue(t,e,r){let o=0;const n=Object.keys(t[e]??{}),s=Object.keys(t[r]??{});for(const a of n)s.includes(a)&&(o+=t[e][a]*t[r][a]);return o}}onmessage=async t=>{const{data:e,threshold:r,weights:n,aggregationMethod:s,distanceFnArgs:l,distanceFns:i,maxIterations:c}=t.data,f=await(new o._).calcMultiColumn(e,i,r/100,l,n,s),h=await new a({maxIterations:c??5}).transform(f,e[0].length);postMessage({res:h})}},6814:(t,e,r)=>{r.d(e,{cZ:()=>n,kK:()=>o}),r(7862);const o=t=>null==t;function n(t,e,r,o){if(r>t[t.length-1])return;const n=t.findIndex((t=>r<t));t.pop(),t.splice(n,0,r),e.pop(),e.splice(n,0,o)}}},o={};function n(t){var e=o[t];if(void 0!==e)return e.exports;var s=o[t]={exports:{}};return r[t](s,s.exports,n),s.exports}n.m=r,n.x=()=>{var t=n.O(void 0,[590],(()=>n(2357)));return n.O(t)},t=[],n.O=(e,r,o,s)=>{if(!r){var a=1/0;for(f=0;f<t.length;f++){for(var[r,o,s]=t[f],l=!0,i=0;i<r.length;i++)(!1&s||a>=s)&&Object.keys(n.O).every((t=>n.O[t](r[i])))?r.splice(i--,1):(l=!1,s<a&&(a=s));if(l){t.splice(f--,1);var c=o();void 0!==c&&(e=c)}}return e}s=s||0;for(var f=t.length;f>0&&t[f-1][2]>s;f--)t[f]=t[f-1];t[f]=[r,o,s]},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.f={},n.e=t=>Promise.all(Object.keys(n.f).reduce(((e,r)=>(n.f[r](t,e),e)),[])),n.u=t=>t+".js",n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var o=r.length-1;o>-1&&!t;)t=r[o--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t})(),(()=>{n.b=self.location+"";var t={709:1};n.f.i=(e,r)=>{t[e]||importScripts(n.p+n.u(e))};var e=self.webpackChunkeda=self.webpackChunkeda||[],r=e.push.bind(e);e.push=e=>{var[o,s,a]=e;for(var l in s)n.o(s,l)&&(n.m[l]=s[l]);for(a&&a(n);o.length;)t[o.pop()]=1;r(e)}})(),e=n.x,n.x=()=>n.e(590).then(e);var s=n.x();eda=s})();
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVEsWUFBYSxLQUNwRnBELEVBQW9CcUQsRUFBSVYsQyxXQ2xCeEIzQyxFQUFvQjlHLEVBQUlvSyxLQUFLVCxTQUFXLEdBSXhDLElBQUlVLEVBQWtCLENBQ3JCLElBQUssR0FnQk52RCxFQUFvQjBCLEVBQUUzSSxFQUFJLENBQUM2SSxFQUFTSSxLQUUvQnVCLEVBQWdCM0IsSUFFbEJnQixjQUFjNUMsRUFBb0JxRCxFQUFJckQsRUFBb0JpQyxFQUFFTCxHQUU5RCxFQUdELElBQUk0QixFQUFxQkYsS0FBc0IsZ0JBQUlBLEtBQXNCLGlCQUFLLEdBQzFFRyxFQUE2QkQsRUFBbUJySyxLQUFLdUssS0FBS0YsR0FDOURBLEVBQW1CckssS0F2QkNzRixJQUNuQixJQUFLa0MsRUFBVWdELEVBQWFDLEdBQVduRixFQUN2QyxJQUFJLElBQUl3QixLQUFZMEQsRUFDaEIzRCxFQUFvQnNCLEVBQUVxQyxFQUFhMUQsS0FDckNELEVBQW9CTyxFQUFFTixHQUFZMEQsRUFBWTFELElBSWhELElBREcyRCxHQUFTQSxFQUFRNUQsR0FDZFcsRUFBUy9ILFFBQ2QySyxFQUFnQjVDLEVBQVNkLE9BQVMsRUFDbkM0RCxFQUEyQmhGLEVBQUssQyxLWm5CN0JwRyxFQUFPMkgsRUFBb0JaLEVBQy9CWSxFQUFvQlosRUFBSSxJQUNoQlksRUFBb0IyQixFQUFFLEtBQUtrQyxLQUFLeEwsR2FEeEMsSUFBSW1JLEVBQXNCUixFQUFvQlosSSIsInNvdXJjZXMiOlsid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvY2h1bmsgbG9hZGVkIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvc3RhcnR1cCBjaHVuayBkZXBlbmRlbmNpZXMiLCJ3ZWJwYWNrOi8vZWRhLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9iaW8tbGF5b3V0LmpzIiwid2VicGFjazovL2VkYS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9NQ0wvbWFyY292LWNsdXN0ZXIuanMiLCJ3ZWJwYWNrOi8vZWRhLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL01DTC9tY2wtd29ya2VyLmpzIiwid2VicGFjazovL2VkYS8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9kaXN0YW5jZS1tYXRyaXgvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2VkYS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9lbnN1cmUgY2h1bmsiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9nZXQgamF2YXNjcmlwdCBjaHVuayBmaWxlbmFtZSIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9lZGEvd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGgiLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svcnVudGltZS9pbXBvcnRTY3JpcHRzIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vZWRhL3dlYnBhY2svc3RhcnR1cCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGVmZXJyZWQgPSBbXTtcbl9fd2VicGFja19yZXF1aXJlX18uTyA9IChyZXN1bHQsIGNodW5rSWRzLCBmbiwgcHJpb3JpdHkpID0+IHtcblx0aWYoY2h1bmtJZHMpIHtcblx0XHRwcmlvcml0eSA9IHByaW9yaXR5IHx8IDA7XG5cdFx0Zm9yKHZhciBpID0gZGVmZXJyZWQubGVuZ3RoOyBpID4gMCAmJiBkZWZlcnJlZFtpIC0gMV1bMl0gPiBwcmlvcml0eTsgaS0tKSBkZWZlcnJlZFtpXSA9IGRlZmVycmVkW2kgLSAxXTtcblx0XHRkZWZlcnJlZFtpXSA9IFtjaHVua0lkcywgZm4sIHByaW9yaXR5XTtcblx0XHRyZXR1cm47XG5cdH1cblx0dmFyIG5vdEZ1bGZpbGxlZCA9IEluZmluaXR5O1xuXHRmb3IgKHZhciBpID0gMDsgaSA8IGRlZmVycmVkLmxlbmd0aDsgaSsrKSB7XG5cdFx0dmFyIFtjaHVua0lkcywgZm4sIHByaW9yaXR5XSA9IGRlZmVycmVkW2ldO1xuXHRcdHZhciBmdWxmaWxsZWQgPSB0cnVlO1xuXHRcdGZvciAodmFyIGogPSAwOyBqIDwgY2h1bmtJZHMubGVuZ3RoOyBqKyspIHtcblx0XHRcdGlmICgocHJpb3JpdHkgJiAxID09PSAwIHx8IG5vdEZ1bGZpbGxlZCA+PSBwcmlvcml0eSkgJiYgT2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5PKS5ldmVyeSgoa2V5KSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXy5PW2tleV0oY2h1bmtJZHNbal0pKSkpIHtcblx0XHRcdFx0Y2h1bmtJZHMuc3BsaWNlKGotLSwgMSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRmdWxmaWxsZWQgPSBmYWxzZTtcblx0XHRcdFx0aWYocHJpb3JpdHkgPCBub3RGdWxmaWxsZWQpIG5vdEZ1bGZpbGxlZCA9IHByaW9yaXR5O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZihmdWxmaWxsZWQpIHtcblx0XHRcdGRlZmVycmVkLnNwbGljZShpLS0sIDEpXG5cdFx0XHR2YXIgciA9IGZuKCk7XG5cdFx0XHRpZiAociAhPT0gdW5kZWZpbmVkKSByZXN1bHQgPSByO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gcmVzdWx0O1xufTsiLCJ2YXIgbmV4dCA9IF9fd2VicGFja19yZXF1aXJlX18ueDtcbl9fd2VicGFja19yZXF1aXJlX18ueCA9ICgpID0+IHtcblx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZSg1OTApLnRoZW4obmV4dCk7XG59OyIsImV4cG9ydCBhc3luYyBmdW5jdGlvbiBiaW9MYXlvdXQoY2x1c3Rlciwgc3BhcnNlT2JqZWN0LCB0aHJlc2hvbGQpIHtcbiAgICBjb25zdCBuID0gY2x1c3Rlci5sZW5ndGg7XG4gICAgY29uc3QgaXMgPSBbXTtcbiAgICBjb25zdCBqcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IG47IGorKykge1xuICAgICAgICAgICAgY29uc3QgYSA9IGNsdXN0ZXJbaV07XG4gICAgICAgICAgICBjb25zdCBiID0gY2x1c3RlcltqXTtcbiAgICAgICAgICAgIGlmIChzcGFyc2VPYmplY3RbYV0/LltiXSA+PSB0aHJlc2hvbGQpIHtcbiAgICAgICAgICAgICAgICBpcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIGpzLnB1c2goaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGdldExheW91dEVtYmVkZGluZ3MoaXMsIGpzLCBjbHVzdGVyKTtcbn1cbmZ1bmN0aW9uIGdldExheW91dEVtYmVkZGluZ3MoaXMsIGpzLCBjbHVzdGVyKSB7XG4gICAgY29uc3QgZW1iZWRYID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKS5tYXAoKCkgPT4gTWF0aC5yYW5kb20oKSAqIDEwKTtcbiAgICBjb25zdCBlbWJlZFkgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApLm1hcCgoKSA9PiBNYXRoLnJhbmRvbSgpICogMTApO1xuICAgIGNvbnN0IGl0ZXJhdGlvbnMgPSAxMDA7XG4gICAgY29uc3QgeFZlbG9jaXRpZXMgPSBuZXcgRmxvYXQzMkFycmF5KGNsdXN0ZXIubGVuZ3RoKS5maWxsKDApO1xuICAgIGNvbnN0IHlWZWxvY2l0aWVzID0gbmV3IEZsb2F0MzJBcnJheShjbHVzdGVyLmxlbmd0aCkuZmlsbCgwKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7IGkrKykge1xuICAgICAgICBjb25zdCB0ZW1wZXJhdHVyZSA9ICgxIC0gaSAvIGl0ZXJhdGlvbnMpO1xuICAgICAgICB4VmVsb2NpdGllcy5maWxsKDApO1xuICAgICAgICB5VmVsb2NpdGllcy5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBpcy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBjb25zdCBhID0gaXNbaWR4XTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBqc1tpZHhdO1xuICAgICAgICAgICAgY29uc3QgZHggPSBlbWJlZFhbYV0gLSBlbWJlZFhbYl07XG4gICAgICAgICAgICBjb25zdCBkeSA9IGVtYmVkWVthXSAtIGVtYmVkWVtiXTtcbiAgICAgICAgICAgIC8vICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpO1xuICAgICAgICAgICAgLy8gICBjb25zdCBmYWN0b3IgPSAoZGlzdGFuY2UgLSAxKSAvIGRpc3RhbmNlO1xuICAgICAgICAgICAgLy8gICBjb25zdCBvZmZzZXRYID0gZHggKiBmYWN0b3I7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IG9mZnNldFkgPSBkeSAqIGZhY3RvcjtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkeCkgPj0gMSkge1xuICAgICAgICAgICAgICAgIHhWZWxvY2l0aWVzW2FdIC09IHRlbXBlcmF0dXJlICogZHg7XG4gICAgICAgICAgICAgICAgeFZlbG9jaXRpZXNbYl0gKz0gdGVtcGVyYXR1cmUgKiBkeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhkeSkgPj0gMSkge1xuICAgICAgICAgICAgICAgIHlWZWxvY2l0aWVzW2FdIC09IHRlbXBlcmF0dXJlICogZHk7XG4gICAgICAgICAgICAgICAgeVZlbG9jaXRpZXNbYl0gKz0gdGVtcGVyYXR1cmUgKiBkeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vICAgZW1iZWRZW2FdICs9IG9mZnNldFkgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgICAgIC8vICAgZW1iZWRZW2JdIC09IG9mZnNldFkgKiB0ZW1wZXJhdHVyZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IHZlY1NpemUgPSBNYXRoLnNxcnQoeFZlbG9jaXRpZXNbaWR4XSAqIHhWZWxvY2l0aWVzW2lkeF0gKyB5VmVsb2NpdGllc1tpZHhdICogeVZlbG9jaXRpZXNbaWR4XSk7XG4gICAgICAgICAgICBpZiAodmVjU2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICBlbWJlZFhbaWR4XSArPSB4VmVsb2NpdGllc1tpZHhdIC8gdmVjU2l6ZSAqIHRlbXBlcmF0dXJlO1xuICAgICAgICAgICAgICAgIGVtYmVkWVtpZHhdICs9IHlWZWxvY2l0aWVzW2lkeF0gLyB2ZWNTaXplICogdGVtcGVyYXR1cmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gbm9ybWFsaXplXG4gICAgbGV0IG1pblggPSBlbWJlZFhbMF07XG4gICAgbGV0IG1pblkgPSBlbWJlZFlbMF07XG4gICAgbGV0IG1heFggPSBlbWJlZFhbMF07XG4gICAgbGV0IG1heFkgPSBlbWJlZFlbMF07XG4gICAgZm9yIChsZXQgaWR4ID0gMTsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIG1pblggPSBNYXRoLm1pbihtaW5YLCBlbWJlZFhbaWR4XSk7XG4gICAgICAgIG1pblkgPSBNYXRoLm1pbihtaW5ZLCBlbWJlZFlbaWR4XSk7XG4gICAgICAgIG1heFggPSBNYXRoLm1heChtYXhYLCBlbWJlZFhbaWR4XSk7XG4gICAgICAgIG1heFkgPSBNYXRoLm1heChtYXhZLCBlbWJlZFlbaWR4XSk7XG4gICAgfVxuICAgIGxldCByYW5nZVggPSBtYXhYIC0gbWluWDtcbiAgICBsZXQgcmFuZ2VZID0gbWF4WSAtIG1pblk7XG4gICAgaWYgKHJhbmdlWCA9PT0gMClcbiAgICAgICAgcmFuZ2VYID0gbWF4WDtcbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBjbHVzdGVyLmxlbmd0aDsgaWR4KyspXG4gICAgICAgIGVtYmVkWFtpZHhdID0gKGVtYmVkWFtpZHhdIC0gbWluWCkgLyByYW5nZVggLyAyICsgMC41O1xuICAgIGlmIChyYW5nZVkgPT09IDApXG4gICAgICAgIHJhbmdlWSA9IG1heFk7XG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY2x1c3Rlci5sZW5ndGg7IGlkeCsrKVxuICAgICAgICBlbWJlZFlbaWR4XSA9IChlbWJlZFlbaWR4XSAtIG1pblkpIC8gcmFuZ2VZIC8gMiArIDAuNTtcbiAgICByZXR1cm4geyBlbWJlZFgsIGVtYmVkWSB9O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWW1sdkxXeGhlVzkxZEM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbUpwYnkxc1lYbHZkWFF1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlJVRXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3hUUVVGVExFTkJRVU1zVDBGQmFVSXNSVUZCUlN4WlFVRm5ReXhGUVVGRkxGTkJRV2xDTzBsQlEzQkhMRTFCUVUwc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEZWtJc1RVRkJUU3hGUVVGRkxFZEJRV0VzUlVGQlJTeERRVUZETzBsQlEzaENMRTFCUVUwc1JVRkJSU3hIUVVGaExFVkJRVVVzUTBGQlF6dEpRVU40UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRekZDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xbEJRemxDTEUxQlFVMHNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU55UWl4TlFVRk5MRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tJc1NVRkJTU3haUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hUUVVGVExFVkJRVVU3WjBKQlEzSkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTFnc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0aFFVTmFPMU5CUTBZN1MwRkRSanRKUVVORUxFOUJRVThzYlVKQlFXMUNMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0QlFVTTVReXhEUVVGRE8wRkJSVVFzVTBGQlV5eHRRa0ZCYlVJc1EwRkJReXhGUVVGWkxFVkJRVVVzUlVGQldTeEZRVUZGTEU5QlFXbENPMGxCUTNoRkxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dEpRVU4wUml4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRkRVlzVFVGQlRTeFZRVUZWTEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUTNaQ0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROMFFzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4WlFVRlpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNM1JDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVlVGQlZTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUTI1RExFMUJRVTBzVjBGQlZ5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU42UXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzQkNMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0VJc1MwRkJTeXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVTdXVUZEZUVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJ4Q0xFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOc1FpeE5RVUZOTEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTJwRExFMUJRVTBzUlVGQlJTeEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYWtNc2JVUkJRVzFFTzFsQlEyNUVMRGhEUVVFNFF6dFpRVU01UXl4cFEwRkJhVU03V1VGRGFrTXNhVU5CUVdsRE8xbEJRMnBETEVsQlFVa3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVTdaMEpCUTNKQ0xGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4WFFVRlhMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU51UXl4WFFVRlhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXp0aFFVTndRenRaUVVORUxFbEJRVWtzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlEzSkNMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFhRVUZYTEVkQlFVY3NSVUZCUlN4RFFVRkRPMmRDUVVOdVF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1YwRkJWeXhIUVVGSExFVkJRVVVzUTBGQlF6dGhRVU53UXp0WlFVTklMSGREUVVGM1F6dFpRVU40UXl4M1EwRkJkME03VTBGRGRrTTdVVUZEUkN4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFpRVU0zUXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKSExFbEJRVWtzVDBGQlR5eEhRVUZITEVOQlFVTXNSVUZCUlR0blFrRkRaaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFOUJRVThzUjBGQlJ5eFhRVUZYTEVOQlFVTTdaMEpCUTNoRUxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzVDBGQlR5eEhRVUZITEZkQlFWY3NRMEZCUXp0aFFVTjZSRHRUUVVOR08wdEJRMFk3U1VGRlJDeFpRVUZaTzBsQlExb3NTVUZCU1N4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkNMRWxCUVVrc1NVRkJTU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnlRaXhKUVVGSkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRja0lzU1VGQlNTeEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pDTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRemRETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFVkJRVVVzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRia01zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTndRenRKUVVORUxFbEJRVWtzVFVGQlRTeEhRVUZITEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1NVRkRla0lzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVONlFpeEpRVUZKTEUxQlFVMHNTMEZCU3l4RFFVRkRPMUZCUTJRc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU5vUWl4TFFVRkxMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVU3VVVGRE0wTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFMUJRVTBzUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUTNoRUxFbEJRVWtzVFVGQlRTeExRVUZMTEVOQlFVTTdVVUZEWkN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRMmhDTEV0QlFVc3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSVHRSUVVNelF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1RVRkJUU3hIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdTVUZGZUVRc1QwRkJUeXhGUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdFRjR0Z5YzJWTllYUnlhWGhQWW1wbFkzUjlJR1p5YjIwZ0p5NHZkSGx3WlhNbk8xeHVYRzVsZUhCdmNuUWdZWE41Ym1NZ1puVnVZM1JwYjI0Z1ltbHZUR0Y1YjNWMEtHTnNkWE4wWlhJNklHNTFiV0psY2x0ZExDQnpjR0Z5YzJWUFltcGxZM1E2SUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZEN3Z2RHaHlaWE5vYjJ4a09pQnVkVzFpWlhJcElIdGNiaUFnWTI5dWMzUWdiaUE5SUdOc2RYTjBaWEl1YkdWdVozUm9PMXh1SUNCamIyNXpkQ0JwY3pvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ1kyOXVjM1FnYW5NNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dianNnYVNzcktTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJR2tnS3lBeE95QnFJRHdnYmpzZ2Fpc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhJRDBnWTJ4MWMzUmxjbHRwWFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR0lnUFNCamJIVnpkR1Z5VzJwZE8xeHVJQ0FnSUNBZ2FXWWdLSE53WVhKelpVOWlhbVZqZEZ0aFhUOHVXMkpkSUQ0OUlIUm9jbVZ6YUc5c1pDa2dlMXh1SUNBZ0lDQWdJQ0JwY3k1d2RYTm9LR2twTzF4dUlDQWdJQ0FnSUNCcWN5NXdkWE5vS0dvcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnWjJWMFRHRjViM1YwUlcxaVpXUmthVzVuY3locGN5d2dhbk1zSUdOc2RYTjBaWElwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJuWlhSTVlYbHZkWFJGYldKbFpHUnBibWR6S0dsek9pQnVkVzFpWlhKYlhTd2dhbk02SUc1MWJXSmxjbHRkTENCamJIVnpkR1Z5T2lCdWRXMWlaWEpiWFNrZ2UxeHVJQ0JqYjI1emRDQmxiV0psWkZnZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHTnNkWE4wWlhJdWJHVnVaM1JvS1M1bWFXeHNLREFwTG0xaGNDZ29LU0E5UGlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nTVRBcE8xeHVJQ0JqYjI1emRDQmxiV0psWkZrZ1BTQnVaWGNnUm14dllYUXpNa0Z5Y21GNUtHTnNkWE4wWlhJdWJHVnVaM1JvS1M1bWFXeHNLREFwTG0xaGNDZ29LU0E5UGlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nTVRBcE8xeHVJQ0JqYjI1emRDQnBkR1Z5WVhScGIyNXpJRDBnTVRBd08xeHVJQ0JqYjI1emRDQjRWbVZzYjJOcGRHbGxjeUE5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvWTJ4MWMzUmxjaTVzWlc1bmRHZ3BMbVpwYkd3b01DazdYRzRnSUdOdmJuTjBJSGxXWld4dlkybDBhV1Z6SUQwZ2JtVjNJRVpzYjJGME16SkJjbkpoZVNoamJIVnpkR1Z5TG14bGJtZDBhQ2t1Wm1sc2JDZ3dLVHRjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnBkR1Z5WVhScGIyNXpPeUJwS3lzcElIdGNiaUFnSUNCamIyNXpkQ0IwWlcxd1pYSmhkSFZ5WlNBOUlDZ3hJQzBnYVNBdklHbDBaWEpoZEdsdmJuTXBPMXh1SUNBZ0lIaFdaV3h2WTJsMGFXVnpMbVpwYkd3b01DazdYRzRnSUNBZ2VWWmxiRzlqYVhScFpYTXVabWxzYkNnd0tUdGNiaUFnSUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F3T3lCcFpIZ2dQQ0JwY3k1c1pXNW5kR2c3SUdsa2VDc3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhJRDBnYVhOYmFXUjRYVHRjYmlBZ0lDQWdJR052Ym5OMElHSWdQU0JxYzF0cFpIaGRPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pIZ2dQU0JsYldKbFpGaGJZVjBnTFNCbGJXSmxaRmhiWWwwN1hHNGdJQ0FnSUNCamIyNXpkQ0JrZVNBOUlHVnRZbVZrV1Z0aFhTQXRJR1Z0WW1Wa1dWdGlYVHRjYmlBZ0lDQWdJQzh2SUNBZ1kyOXVjM1FnWkdsemRHRnVZMlVnUFNCTllYUm9Mbk54Y25Rb1pIZ2dLaUJrZUNBcklHUjVJQ29nWkhrcE8xeHVJQ0FnSUNBZ0x5OGdJQ0JqYjI1emRDQm1ZV04wYjNJZ1BTQW9aR2x6ZEdGdVkyVWdMU0F4S1NBdklHUnBjM1JoYm1ObE8xeHVJQ0FnSUNBZ0x5OGdJQ0JqYjI1emRDQnZabVp6WlhSWUlEMGdaSGdnS2lCbVlXTjBiM0k3WEc0Z0lDQWdJQ0F2THlBZ0lHTnZibk4wSUc5bVpuTmxkRmtnUFNCa2VTQXFJR1poWTNSdmNqdGNiaUFnSUNBZ0lHbG1JQ2hOWVhSb0xtRmljeWhrZUNrZ1BqMGdNU2tnZTF4dUlDQWdJQ0FnSUNCNFZtVnNiMk5wZEdsbGMxdGhYU0F0UFNCMFpXMXdaWEpoZEhWeVpTQXFJR1I0TzF4dUlDQWdJQ0FnSUNCNFZtVnNiMk5wZEdsbGMxdGlYU0FyUFNCMFpXMXdaWEpoZEhWeVpTQXFJR1I0TzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tFMWhkR2d1WVdKektHUjVLU0ErUFNBeEtTQjdYRzRnSUNBZ0lDQWdJSGxXWld4dlkybDBhV1Z6VzJGZElDMDlJSFJsYlhCbGNtRjBkWEpsSUNvZ1pIazdYRzRnSUNBZ0lDQWdJSGxXWld4dlkybDBhV1Z6VzJKZElDczlJSFJsYlhCbGNtRjBkWEpsSUNvZ1pIazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0x5OGdJQ0JsYldKbFpGbGJZVjBnS3owZ2IyWm1jMlYwV1NBcUlIUmxiWEJsY21GMGRYSmxPMXh1SUNBZ0lDOHZJQ0FnWlcxaVpXUlpXMkpkSUMwOUlHOW1abk5sZEZrZ0tpQjBaVzF3WlhKaGRIVnlaVHRjYmlBZ0lDQjlYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FXUjRJRDBnTURzZ2FXUjRJRHdnWTJ4MWMzUmxjaTVzWlc1bmRHZzdJR2xrZUNzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMlpXTlRhWHBsSUQwZ1RXRjBhQzV6Y1hKMEtIaFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0tpQjRWbVZzYjJOcGRHbGxjMXRwWkhoZElDc2dlVlpsYkc5amFYUnBaWE5iYVdSNFhTQXFJSGxXWld4dlkybDBhV1Z6VzJsa2VGMHBPMXh1SUNBZ0lDQWdhV1lnS0habFkxTnBlbVVnUGlBd0tTQjdYRzRnSUNBZ0lDQWdJR1Z0WW1Wa1dGdHBaSGhkSUNzOUlIaFdaV3h2WTJsMGFXVnpXMmxrZUYwZ0x5QjJaV05UYVhwbElDb2dkR1Z0Y0dWeVlYUjFjbVU3WEc0Z0lDQWdJQ0FnSUdWdFltVmtXVnRwWkhoZElDczlJSGxXWld4dlkybDBhV1Z6VzJsa2VGMGdMeUIyWldOVGFYcGxJQ29nZEdWdGNHVnlZWFIxY21VN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5OGdibTl5YldGc2FYcGxYRzRnSUd4bGRDQnRhVzVZSUQwZ1pXMWlaV1JZV3pCZE8xeHVJQ0JzWlhRZ2JXbHVXU0E5SUdWdFltVmtXVnN3WFR0Y2JpQWdiR1YwSUcxaGVGZ2dQU0JsYldKbFpGaGJNRjA3WEc0Z0lHeGxkQ0J0WVhoWklEMGdaVzFpWldSWld6QmRPMXh1SUNCbWIzSWdLR3hsZENCcFpIZ2dQU0F4T3lCcFpIZ2dQQ0JqYkhWemRHVnlMbXhsYm1kMGFEc2dhV1I0S3lzcElIdGNiaUFnSUNCdGFXNVlJRDBnVFdGMGFDNXRhVzRvYldsdVdDd2daVzFpWldSWVcybGtlRjBwTzF4dUlDQWdJRzFwYmxrZ1BTQk5ZWFJvTG0xcGJpaHRhVzVaTENCbGJXSmxaRmxiYVdSNFhTazdYRzRnSUNBZ2JXRjRXQ0E5SUUxaGRHZ3ViV0Y0S0cxaGVGZ3NJR1Z0WW1Wa1dGdHBaSGhkS1R0Y2JpQWdJQ0J0WVhoWklEMGdUV0YwYUM1dFlYZ29iV0Y0V1N3Z1pXMWlaV1JaVzJsa2VGMHBPMXh1SUNCOVhHNGdJR3hsZENCeVlXNW5aVmdnUFNCdFlYaFlJQzBnYldsdVdEdGNiaUFnYkdWMElISmhibWRsV1NBOUlHMWhlRmtnTFNCdGFXNVpPMXh1SUNCcFppQW9jbUZ1WjJWWUlEMDlQU0F3S1Z4dUlDQWdJSEpoYm1kbFdDQTlJRzFoZUZnN1hHNGdJR1p2Y2lBb2JHVjBJR2xrZUNBOUlEQTdJR2xrZUNBOElHTnNkWE4wWlhJdWJHVnVaM1JvT3lCcFpIZ3JLeWxjYmlBZ0lDQmxiV0psWkZoYmFXUjRYU0E5SUNobGJXSmxaRmhiYVdSNFhTQXRJRzFwYmxncElDOGdjbUZ1WjJWWUlDOGdNaUFySURBdU5UdGNiaUFnYVdZZ0tISmhibWRsV1NBOVBUMGdNQ2xjYmlBZ0lDQnlZVzVuWlZrZ1BTQnRZWGhaTzF4dUlDQm1iM0lnS0d4bGRDQnBaSGdnUFNBd095QnBaSGdnUENCamJIVnpkR1Z5TG14bGJtZDBhRHNnYVdSNEt5c3BYRzRnSUNBZ1pXMWlaV1JaVzJsa2VGMGdQU0FvWlcxaVpXUlpXMmxrZUYwZ0xTQnRhVzVaS1NBdklISmhibWRsV1NBdklESWdLeUF3TGpVN1hHNWNiaUFnY21WMGRYSnVJSHRsYldKbFpGZ3NJR1Z0WW1Wa1dYMDdYRzU5WEc0aVhYMD0iLCJpbXBvcnQgeyBiaW9MYXlvdXQgfSBmcm9tICcuL2Jpby1sYXlvdXQnO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRNQ0xPcHRpb25zID0ge1xuICAgIGV4cGFuZEZhY3RvcjogMixcbiAgICBtYXhJdGVyYXRpb25zOiA1LFxuICAgIGluZmxhdGVGYWN0b3I6IDIsXG4gICAgbXVsdEZhY3RvcjogMSxcbn07XG5leHBvcnQgY2xhc3MgTUNMU3BhcnNlUmVkdWNlciB7XG4gICAgX29wdGlvbnM7XG4gICAgY29uc3RydWN0b3Iob3B0cyA9IHt9KSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB7IC4uLmRlZmF1bHRNQ0xPcHRpb25zLCAuLi5vcHRzIH07XG4gICAgfVxuICAgIGFzeW5jIHRyYW5zZm9ybShzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIC8vIHRlc3RXb3JrZXJNdWx0aXBseSgpO1xuICAgICAgICAvLyByZXR1cm4gbmV3IEludDMyQXJyYXkoblJvd3MpO1xuICAgICAgICBsZXQgc3BhcnNlT2JqZWN0ID0gdGhpcy50b09iamVjdEZvcm0oc3BhcnNlTWF0cml4KTtcbiAgICAgICAgaWYgKHRoaXMuX29wdGlvbnMubWF4SXRlcmF0aW9ucyA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkTG9vcHMoc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9vcHRpb25zLm1heEl0ZXJhdGlvbnM7IGkrKykge1xuICAgICAgICAgICAgICAgIHNwYXJzZU9iamVjdCA9IHRoaXMuZXhwYW5kKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5mbGF0ZShzcGFyc2VPYmplY3QpO1xuICAgICAgICAgICAgICAgIHRoaXMubm9ybWFsaXplKHNwYXJzZU9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjbHVzdGVycywgaXMsIGpzIH0gPSB0aGlzLmFzc2lnbkNsdXN0ZXJzKHNwYXJzZU9iamVjdCwgblJvd3MpO1xuICAgICAgICB0aGlzLmNvcnJlY3RDbHVzdGVycyhjbHVzdGVycyk7XG4gICAgICAgIGNvbnN0IGVtYmVkZGluZ3MgPSBhd2FpdCB0aGlzLmxheW91dChjbHVzdGVycywgc3BhcnNlT2JqZWN0LCBuUm93cyk7XG4gICAgICAgIHJldHVybiB7IGNsdXN0ZXJzLCBlbWJlZFg6IGVtYmVkZGluZ3MuZW1iZWRYLCBlbWJlZFk6IGVtYmVkZGluZ3MuZW1iZWRZLCBpcywganMgfTtcbiAgICB9XG4gICAgY29ycmVjdENsdXN0ZXJzKGNsdXN0ZXJzKSB7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJTaXplTWFwID0ge307XG4gICAgICAgIGZvciAoY29uc3QgY2x1c3RlciBvZiBjbHVzdGVycykge1xuICAgICAgICAgICAgaWYgKCFjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSlcbiAgICAgICAgICAgICAgICBjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSA9IDA7XG4gICAgICAgICAgICBjbHVzdGVyU2l6ZU1hcFtjbHVzdGVyXSsrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvcnRlZEluZGV4ZXMgPSBPYmplY3Qua2V5cyhjbHVzdGVyU2l6ZU1hcCkubWFwKE51bWJlcikuc29ydCgoYSwgYikgPT4gY2x1c3RlclNpemVNYXBbYV0gLSBjbHVzdGVyU2l6ZU1hcFtiXSk7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJNYXAgPSB7fTtcbiAgICAgICAgc29ydGVkSW5kZXhlcy5mb3JFYWNoKChjbHVzdGVySWR4LCBpKSA9PiBjbHVzdGVyTWFwW2NsdXN0ZXJJZHhdID0gaSArIDEpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgY2x1c3RlcnNbaV0gPSBjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXTtcbiAgICAgICAgLy8gbGV0IGN1ckNsdXN0ZXIgPSAxO1xuICAgICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vICAgaWYgKCFjbHVzdGVyTWFwW2NsdXN0ZXJzW2ldXSkge1xuICAgICAgICAvLyAgICAgY2x1c3Rlck1hcFtjbHVzdGVyc1tpXV0gPSBjdXJDbHVzdGVyO1xuICAgICAgICAvLyAgICAgY2x1c3RlcnNbaV0gPSBjdXJDbHVzdGVyO1xuICAgICAgICAvLyAgICAgY3VyQ2x1c3RlcisrO1xuICAgICAgICAvLyAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICBjbHVzdGVyc1tpXSA9IGNsdXN0ZXJNYXBbY2x1c3RlcnNbaV1dO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfVxuICAgIH1cbiAgICBhc3luYyBsYXlvdXQoY2x1c3RlcnMsIHNwYXJzZU1hdHJpeCwgblJvd3MpIHtcbiAgICAgICAgY29uc3QgZW1iZWRYID0gbmV3IEZsb2F0MzJBcnJheShuUm93cykuZmlsbCgwKTtcbiAgICAgICAgY29uc3QgZW1iZWRZID0gbmV3IEZsb2F0MzJBcnJheShuUm93cykuZmlsbCgwKTtcbiAgICAgICAgY29uc3QgY2x1c3Rlck1hcCA9IHt9O1xuICAgICAgICBjbHVzdGVycy5mb3JFYWNoKChjbHVzdGVyLCBpKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNsdXN0ZXJNYXBbY2x1c3Rlcl0pXG4gICAgICAgICAgICAgICAgY2x1c3Rlck1hcFtjbHVzdGVyXSA9IFtdO1xuICAgICAgICAgICAgY2x1c3Rlck1hcFtjbHVzdGVyXS5wdXNoKGkpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gY29uc3QgbkNsdXN0ZXJzID0gT2JqZWN0LmtleXMoY2x1c3Rlck1hcCkubGVuZ3RoO1xuICAgICAgICAvLyBjb25zdCBwZXJSb3cgPSBNYXRoLmZsb29yKE1hdGguc3FydChuQ2x1c3RlcnMpKTtcbiAgICAgICAgbGV0IGNsdXN0ZXJOdW0gPSAwO1xuICAgICAgICBjb25zdCBzb3J0ZWRDbHVzdGVyTmFtZXMgPSBPYmplY3Qua2V5cyhjbHVzdGVyTWFwKTtcbiAgICAgICAgc29ydGVkQ2x1c3Rlck5hbWVzLnNvcnQoKGEsIGIpID0+IGNsdXN0ZXJNYXBbYl0ubGVuZ3RoIC0gY2x1c3Rlck1hcFthXS5sZW5ndGgpO1xuICAgICAgICBsZXQgcGVyUm93ID0gNjtcbiAgICAgICAgbGV0IHlPZmZzZXQgPSAwO1xuICAgICAgICBjb25zdCBsYXlvdXRTaXplID0gNTtcbiAgICAgICAgZm9yIChjb25zdCBjbHVzdGVyTmFtZSBvZiBzb3J0ZWRDbHVzdGVyTmFtZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsdXN0ZXIgPSBjbHVzdGVyTWFwW2NsdXN0ZXJOYW1lXTtcbiAgICAgICAgICAgIGNvbnN0IGVtYmVkZGluZ3MgPSBhd2FpdCBiaW9MYXlvdXQoY2x1c3Rlciwgc3BhcnNlTWF0cml4LCAwLjAwMSk7XG4gICAgICAgICAgICBpZiAoY2x1c3Rlck51bSA9PT0gTWF0aC5jZWlsKHBlclJvdyAvIDEuNSkpIHtcbiAgICAgICAgICAgICAgICBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgICAgICAgICB5T2Zmc2V0ICs9IGxheW91dFNpemUgLyBwZXJSb3c7XG4gICAgICAgICAgICAgICAgcGVyUm93ID0gTWF0aC5jZWlsKHBlclJvdyAqIDEuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBvZmZzZXRYID0gKChjbHVzdGVyTnVtICUgcGVyUm93KSAqIGxheW91dFNpemUgLyBwZXJSb3cpICogMS41O1xuICAgICAgICAgICAgLy8gY29uc3Qgb2Zmc2V0WSA9IE1hdGguZmxvb3IoY2x1c3Rlck51bSAvIHBlclJvdykgKiAyO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbWJlZGRpbmdzLmVtYmVkWC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGVtYmVkWFtjbHVzdGVyW2ldXSA9IGVtYmVkZGluZ3MuZW1iZWRYW2ldICogbGF5b3V0U2l6ZSAvIHBlclJvdyArIG9mZnNldFg7XG4gICAgICAgICAgICAgICAgZW1iZWRZW2NsdXN0ZXJbaV1dID0gZW1iZWRkaW5ncy5lbWJlZFlbaV0gKiBsYXlvdXRTaXplIC8gcGVyUm93ICsgeU9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNsdXN0ZXJOdW0rKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBlbWJlZFgsIGVtYmVkWSB9O1xuICAgIH1cbiAgICBtZXJnZUNsdXN0ZXJzKGNsdXN0ZXJzLCBpLCBqKSB7XG4gICAgICAgIGNvbnN0IGlDbHVzdGVyID0gY2x1c3RlcnNbaV07XG4gICAgICAgIGNvbnN0IGpDbHVzdGVyID0gY2x1c3RlcnNbal07XG4gICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgY2x1c3RlcnMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgIGlmIChjbHVzdGVyc1trXSA9PT0gakNsdXN0ZXIpXG4gICAgICAgICAgICAgICAgY2x1c3RlcnNba10gPSBpQ2x1c3RlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3NpZ25DbHVzdGVycyhzcGFyc2VNYXRyaXgsIG5Sb3dzKSB7XG4gICAgICAgIGxldCBjbHVzdGVyTnVtID0gMDtcbiAgICAgICAgY29uc3QgaXMgPSBbXTtcbiAgICAgICAgY29uc3QganMgPSBbXTtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSBNYXRoLmZsb29yKE1hdGgubWF4KE1hdGgubG9nMTAoblJvd3MpLCAyKSkgKyAxO1xuICAgICAgICBjb25zdCBtaW5PcmRlciA9IE1hdGgucG93KDEwLCBvcmRlcik7XG4gICAgICAgIGNvbnN0IGNsdXN0ZXJzID0gbmV3IEFycmF5KG5Sb3dzKS5maWxsKC0xKTtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIE9iamVjdC5rZXlzKHNwYXJzZU1hdHJpeCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhzcGFyc2VNYXRyaXhbaV0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQoc3BhcnNlTWF0cml4W2ldW2pdICogbWluT3JkZXIpIC8gbWluT3JkZXIgPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIHNwYXJzZU1hdHJpeFtpXVtqXSAhPT0gTnVtYmVyKGkpICYmIE51bWJlcihqKSA+IE51bWJlcihpKSkge1xuICAgICAgICAgICAgICAgICAgICBpcy5wdXNoKE51bWJlcihpKSk7XG4gICAgICAgICAgICAgICAgICAgIGpzLnB1c2goTnVtYmVyKGopKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNsdXN0ZXJzW051bWJlcihpKV0gIT09IC0xICYmIGNsdXN0ZXJzW051bWJlcihqKV0gIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2x1c3RlcnNbTnVtYmVyKGkpXSAhPT0gY2x1c3RlcnNbTnVtYmVyKGopXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lcmdlQ2x1c3RlcnMoY2x1c3RlcnMsIE51bWJlcihpKSwgTnVtYmVyKGopKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjbHVzdGVyc1tOdW1iZXIoaSldICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGopXSA9IGNsdXN0ZXJzW051bWJlcihpKV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2x1c3RlcnNbTnVtYmVyKGopXSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ZXJzW051bWJlcihpKV0gPSBjbHVzdGVyc1tOdW1iZXIoaildO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcnNbTnVtYmVyKGkpXSA9IGNsdXN0ZXJOdW07XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyc1tOdW1iZXIoaildID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsdXN0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoY2x1c3RlcnNbaV0gPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY2x1c3Rlck51bSsrO1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJzW2ldID0gY2x1c3Rlck51bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBjbHVzdGVycywgaXMsIGpzIH07XG4gICAgfVxuICAgIHRvT2JqZWN0Rm9ybShzcGFyc2VNYXRyaXgpIHtcbiAgICAgICAgY29uc3Qgc3BhcnNlT2JqZWN0ID0ge307XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BhcnNlTWF0cml4LmkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICghc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5pW2ldXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dID0ge307XG4gICAgICAgICAgICBzcGFyc2VPYmplY3Rbc3BhcnNlTWF0cml4LmlbaV1dW3NwYXJzZU1hdHJpeC5qW2ldXSA9IDEgLSBzcGFyc2VNYXRyaXguZGlzdGFuY2VbaV07XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtzcGFyc2VNYXRyaXgualtpXV0pXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXSA9IHt9O1xuICAgICAgICAgICAgc3BhcnNlT2JqZWN0W3NwYXJzZU1hdHJpeC5qW2ldXVtzcGFyc2VNYXRyaXguaVtpXV0gPSAxIC0gc3BhcnNlTWF0cml4LmRpc3RhbmNlW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcGFyc2VPYmplY3Q7XG4gICAgfVxuICAgIGFkZExvb3BzKHNwYXJzZU9iamVjdCwgblJvd3MpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV0gPSB7fTtcbiAgICAgICAgICAgIHNwYXJzZU9iamVjdFtpXVtpXSA9IHRoaXMuX29wdGlvbnMubXVsdEZhY3RvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBub3JtYWxpemUoc3BhcnNlT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBsZXQgc3VtID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaiBvZiBPYmplY3Qua2V5cyhyb3cpKVxuICAgICAgICAgICAgICAgIHN1bSArPSByb3dbal07XG4gICAgICAgICAgICBpZiAoc3VtID09PSAwKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgZm9yIChjb25zdCBqIG9mIE9iamVjdC5rZXlzKHJvdykpXG4gICAgICAgICAgICAgICAgc3BhcnNlT2JqZWN0W2ldW2pdIC89IHN1bTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBleHBhbmQoc3BhcnNlT2JqZWN0LCBuUm93cykge1xuICAgICAgICBjb25zdCBleHBhbmRlZE9iamVjdCA9IHt9O1xuICAgICAgICBjb25zdCBvcmRlciA9IE1hdGguZmxvb3IoTWF0aC5tYXgoTWF0aC5sb2cxMChuUm93cyksIDIpKSArIDE7XG4gICAgICAgIGNvbnN0IG1pbk9yZGVyID0gTWF0aC5wb3coMTAsIG9yZGVyKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuUm93czsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXSlcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIC8vIGNvbnN0IHJvdyA9IHNwYXJzZU9iamVjdFtpXTtcbiAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2ldID0ge307XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gaTsgaiA8IG5Sb3dzOyBqKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNwYXJzZU9iamVjdFtpXT8uW2pdKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmdldEV4cGFuZFZhbHVlKHNwYXJzZU9iamVjdCwgaSwgaik7IC8vcHJ1bmluZyBzdGVwXG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucm91bmQodmFsICogbWluT3JkZXIpIC8gbWluT3JkZXIgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkT2JqZWN0W2ldW2pdID0gdmFsO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWV4cGFuZGVkT2JqZWN0W2pdKVxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3Rbal0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRPYmplY3Rbal1baV0gPSB2YWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBleHBhbmRlZE9iamVjdDtcbiAgICB9XG4gICAgLy8gcHJpdmF0ZSBwcnVuZShyb3c6IFNwYXJzZU1hdHJpeE9iamVjdFtudW1iZXJdKSB7XG4gICAgLy8gfVxuICAgIGluZmxhdGUoc3BhcnNlT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyhzcGFyc2VPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zdCByb3cgPSBzcGFyc2VPYmplY3RbaV07XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGogb2YgT2JqZWN0LmtleXMocm93KSlcbiAgICAgICAgICAgICAgICBzcGFyc2VPYmplY3RbaV1bal0gPSBNYXRoLnBvdyhzcGFyc2VPYmplY3RbaV1bal0sIHRoaXMuX29wdGlvbnMuaW5mbGF0ZUZhY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0RXhwYW5kVmFsdWUoc3BhcnNlT2JqZWN0LCBpLCBqKSB7XG4gICAgICAgIGxldCB2YWwgPSAwO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXhlcyA9IE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdFtpXSA/PyB7fSk7XG4gICAgICAgIGNvbnN0IG90aGVySW5kZXhlcyA9IE9iamVjdC5rZXlzKHNwYXJzZU9iamVjdFtqXSA/PyB7fSk7XG4gICAgICAgIGZvciAoY29uc3QgayBvZiBjdXJyZW50SW5kZXhlcykge1xuICAgICAgICAgICAgaWYgKG90aGVySW5kZXhlcy5pbmNsdWRlcyhrKSlcbiAgICAgICAgICAgICAgICB2YWwgKz0gc3BhcnNlT2JqZWN0W2ldW2tdICogc3BhcnNlT2JqZWN0W2pdW2tdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGeVkyOTJMV05zZFhOMFpYSXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKdFlYSmpiM1l0WTJ4MWMzUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGRFFTeFBRVUZQTEVWQlFVTXNVMEZCVXl4RlFVRkRMRTFCUVUwc1kwRkJZeXhEUVVGRE8wRkJSM1pETEUxQlFVMHNRMEZCUXl4TlFVRk5MR2xDUVVGcFFpeEhRVUZsTzBsQlF6TkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wbEJRMllzWVVGQllTeEZRVUZGTEVOQlFVTTdTVUZEYUVJc1lVRkJZU3hGUVVGRkxFTkJRVU03U1VGRGFFSXNWVUZCVlN4RlFVRkZMRU5CUVVNN1EwRkRaQ3hEUVVGRE8wRkJSVVlzVFVGQlRTeFBRVUZQTEdkQ1FVRm5RanRKUVVOdVFpeFJRVUZSTEVOQlFXRTdTVUZGTjBJc1dVRkJXU3hQUVVFMFFpeEZRVUZGTzFGQlEzaERMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzUlVGQlF5eEhRVUZITEdsQ1FVRnBRaXhGUVVGRkxFZEJRVWNzU1VGQlNTeEZRVUZETEVOQlFVTTdTVUZEYkVRc1EwRkJRenRKUVVWTkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNXVUZCWjBNc1JVRkJSU3hMUVVGaE8xRkJRM0JGTEhkQ1FVRjNRanRSUVVONFFpeG5RMEZCWjBNN1VVRkRhRU1zU1VGQlNTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU51UkN4SlFVRkpMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zWVVGQllTeEhRVUZITEVOQlFVTXNSVUZCUlR0WlFVTnVReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVOdVF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xbEJRemRDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR0ZCUVdFc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZEY0VRc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8yZENRVU5vUkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzJkQ1FVTXpRaXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMkZCUXpsQ08xTkJRMFk3VVVGRFJDeE5RVUZOTEVWQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRmxCUVZrc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU53UlN4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF5OUNMRTFCUVUwc1ZVRkJWU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRVZCUVVVc1dVRkJXU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzQkZMRTlCUVU4c1JVRkJReXhSUVVGUkxFVkJRVVVzVFVGQlRTeEZRVUZGTEZWQlFWVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxGVkJRVlVzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJReXhEUVVGRE8wbEJRMnhHTEVOQlFVTTdTVUZGVHl4bFFVRmxMRU5CUVVNc1VVRkJhMEk3VVVGRGVFTXNUVUZCVFN4alFVRmpMRWRCUVRCQ0xFVkJRVVVzUTBGQlF6dFJRVU5xUkN4TFFVRkxMRTFCUVUwc1QwRkJUeXhKUVVGSkxGRkJRVkVzUlVGQlJUdFpRVU01UWl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFOUJRVThzUTBGQlF6dG5Ra0ZETVVJc1kwRkJZeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTTVRaXhqUVVGakxFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXp0VFFVTXpRanRSUVVORUxFMUJRVTBzWVVGQllTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOd1NDeE5RVUZOTEZWQlFWVXNSMEZCTUVJc1JVRkJSU3hEUVVGRE8xRkJRemRETEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNwRkxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlR0WlFVTjBReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzaERMSE5DUVVGelFqdFJRVU4wUWl3NFEwRkJPRU03VVVGRE9VTXNiME5CUVc5RE8xRkJRM0JETERSRFFVRTBRenRSUVVNMVF5eG5RMEZCWjBNN1VVRkRhRU1zYjBKQlFXOUNPMUZCUTNCQ0xHRkJRV0U3VVVGRFlpdzJRMEZCTmtNN1VVRkROME1zVFVGQlRUdFJRVU5PTEVsQlFVazdTVUZEVGl4RFFVRkRPMGxCUlU4c1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZyUWl4RlFVRkZMRmxCUVdkRExFVkJRVVVzUzBGQllUdFJRVU4wUml4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGREwwTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3haUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJReTlETEUxQlFVMHNWVUZCVlN4SFFVRTBRaXhGUVVGRkxFTkJRVU03VVVGREwwTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTTVRaXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEU5QlFVOHNRMEZCUXp0blFrRkRkRUlzVlVGQlZTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRaUVVNelFpeFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6bENMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzYjBSQlFXOUVPMUZCUTNCRUxHMUVRVUZ0UkR0UlFVTnVSQ3hKUVVGSkxGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEYmtJc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlEyNUVMR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzVlVGQlZTeERRVUZETEVOQlFWRXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRemRHTEVsQlFVa3NUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVWbUxFbEJRVWtzVDBGQlR5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTm9RaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEY2tJc1MwRkJTeXhOUVVGTkxGZEJRVmNzU1VGQlNTeHJRa0ZCYTBJc1JVRkJSVHRaUVVNMVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4VlFVRlZMRU5CUVVNc1YwRkJhMElzUTBGQlJTeERRVUZETzFsQlEyaEVMRTFCUVUwc1ZVRkJWU3hIUVVGSExFMUJRVTBzVTBGQlV5eERRVUZETEU5QlFVOHNSVUZCUlN4WlFVRlpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGRGFrVXNTVUZCU1N4VlFVRlZMRXRCUVVzc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4RFFVRkRMRVZCUVVVN1owSkJRekZETEZWQlFWVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1owSkJRMllzVDBGQlR5eEpRVUZKTEZWQlFWVXNSMEZCUnl4TlFVRk5MRU5CUVVNN1owSkJReTlDTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXp0aFFVTnNRenRaUVVORUxFMUJRVTBzVDBGQlR5eEhRVUZITEVOQlFVTXNRMEZCUXl4VlFVRlZMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzVlVGQlZTeEhRVUZITEUxQlFVMHNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJRenRaUVVOd1JTeDFSRUZCZFVRN1dVRkZka1FzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU5xUkN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVkQlFVY3NUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJRenRuUWtGRE1VVXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeEhRVUZITEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNN1lVRkRNMFU3V1VGRFJDeFZRVUZWTEVWQlFVVXNRMEZCUXp0VFFVTmtPMUZCUTBRc1QwRkJUeXhGUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVTXNRMEZCUXp0SlFVTXhRaXhEUVVGRE8wbEJSVThzWVVGQllTeERRVUZETEZGQlFXdENMRVZCUVVVc1EwRkJVeXhGUVVGRkxFTkJRVk03VVVGRE5VUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6ZENMRTFCUVUwc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTNRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTjRReXhKUVVGSkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4UlFVRlJPMmRDUVVNeFFpeFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRE8xTkJRekZDTzBsQlEwZ3NRMEZCUXp0SlFVTk5MR05CUVdNc1EwRkJReXhaUVVGblF5eEZRVUZGTEV0QlFXRTdVVUZEYmtVc1NVRkJTU3hWUVVGVkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyNUNMRTFCUVUwc1JVRkJSU3hIUVVGaExFVkJRVVVzUTBGQlF6dFJRVU40UWl4TlFVRk5MRVZCUVVVc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRGVFSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE4wUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRja01zVFVGQlRTeFJRVUZSTEVkQlFXRXNTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja1FzUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTzFsQlEzcERMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU1zUlVGQlJUdG5Ra0ZEYmtRc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJReXhEUVVGUkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNSMEZCUnl4UlFVRlJMRWRCUVVjc1EwRkJRenR2UWtGRGVFVXNXVUZCV1N4RFFVRkRMRU5CUVZFc1EwRkJReXhEUVVGRExFTkJRVkVzUTBGQlF5eExRVUZMTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRk8yOUNRVU42UlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVOdVFpeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTnVRaXhKUVVGSkxGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVTdkMEpCUXpWRUxFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN05FSkJRemRETEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHhRa0ZEZEVRN2VVSkJRVTBzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVTdkMEpCUTNKRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2NVSkJRek5ETzNsQ1FVRk5MRWxCUVVrc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRk8zZENRVU55UXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzNGQ1FVTXpRenQ1UWtGQlRUdDNRa0ZEVEN4VlFVRlZMRVZCUVVVc1EwRkJRenQzUWtGRFlpeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETzNkQ1FVTnFReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRE8zRkNRVU5zUXp0cFFrRkRSanRoUVVOR08xTkJRMFk3VVVGRFJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVOMFF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJUdG5Ra0ZEZEVJc1ZVRkJWU3hGUVVGSExFTkJRVU03WjBKQlEyUXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExGVkJRVlVzUTBGQlF6dGhRVU14UWp0VFFVTkdPMUZCUTBRc1QwRkJUeXhGUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkRMRU5CUVVNN1NVRkROVUlzUTBGQlF6dEpRVVZOTEZsQlFWa3NRMEZCUXl4WlFVRm5RenRSUVVOc1JDeE5RVUZOTEZsQlFWa3NSMEZCZVVNc1JVRkJSU3hEUVVGRE8xRkJRemxFTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU01UXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRMnhETEZsQlFWa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUTNaRExGbEJRVmtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnhHTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRiRU1zV1VGQldTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEZGtNc1dVRkJXU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRia1k3VVVGRFJDeFBRVUZQTEZsQlFWa3NRMEZCUXp0SlFVTjBRaXhEUVVGRE8wbEJSVThzVVVGQlVTeERRVUZETEZsQlFXZERMRVZCUVVVc1MwRkJZVHRSUVVNNVJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8xbEJRM1pDTEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJRenRUUVVNdlF6dEpRVU5JTEVOQlFVTTdTVUZGVHl4VFFVRlRMRU5CUVVNc1dVRkJaME03VVVGRGFFUXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZPMWxCUTNwRExFMUJRVTBzUjBGQlJ5eEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRlJMRU5CUVVNc1EwRkJRenRaUVVOdVF5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRXaXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRE8yZENRVU01UWl4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVkVzUTBGQlF5eERRVUZETzFsQlEzWkNMRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU03WjBKQlFVVXNVMEZCVXp0WlFVTjRRaXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRE8yZENRVU01UWl4WlFVRlpMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU1zUTBGQlVTeERRVUZETEVsQlFVa3NSMEZCUnl4RFFVRkRPMU5CUXpORE8wbEJRMGdzUTBGQlF6dEpRVVZQTEUxQlFVMHNRMEZCUXl4WlFVRm5ReXhGUVVGRkxFdEJRV0U3VVVGRE5VUXNUVUZCVFN4alFVRmpMRWRCUVhWQ0xFVkJRVVVzUTBGQlF6dFJRVU01UXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOeVF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeFRRVUZUTzFsQlExZ3NLMEpCUVN0Q08xbEJReTlDTEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03V1VGRGRrSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRuUWtGRE9VSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRka0lzVTBGQlV6dG5Ra0ZEV0N4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eGpRVUZqTzJkQ1FVTnVSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4SFFVRkhMRkZCUVZFc1EwRkJReXhIUVVGSExGRkJRVkVzUjBGQlJ5eERRVUZETEVWQlFVVTdiMEpCUXpkRExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03YjBKQlF6TkNMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETzNkQ1FVTndRaXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMjlDUVVONlFpeGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzJsQ1FVTTFRanRoUVVOR08xTkJRMFk3VVVGRFJDeFBRVUZQTEdOQlFXTXNRMEZCUXp0SlFVTjRRaXhEUVVGRE8wbEJSVVFzYlVSQlFXMUVPMGxCUlc1RUxFbEJRVWs3U1VGRlNTeFBRVUZQTEVOQlFVTXNXVUZCWjBNN1VVRkRPVU1zUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTzFsQlEzcERMRTFCUVUwc1IwRkJSeXhIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXp0WlFVTnVReXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRE8yZENRVU01UWl4WlFVRlpMRU5CUVVNc1EwRkJVU3hEUVVGRExFTkJRVU1zUTBGQlVTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlVTeERRVUZETEVOQlFVTXNRMEZCVVN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0VFFVTTVSenRKUVVOSUxFTkJRVU03U1VGRlR5eGpRVUZqTEVOQlFVTXNXVUZCWjBNc1JVRkJSU3hEUVVGTkxFVkJRVVVzUTBGQlRUdFJRVU55UlN4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRFdpeE5RVUZOTEdOQlFXTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVNeFJDeE5RVUZOTEZsQlFWa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVONFJDeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMR05CUVdNc1JVRkJSVHRaUVVNNVFpeEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU14UWl4SFFVRkhMRWxCUVVrc1dVRkJXU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFWRXNRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZSTEVOQlFVTXNRMEZCUXp0VFFVTm9SVHRSUVVORUxFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNRMEZCUXp0RFFVTkdJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRUY0dGeWMyVk5ZWFJ5YVhoU1pYTjFiSFI5SUdaeWIyMGdKeTR1TDJScGMzUmhibU5sTFcxaGRISnBlQzl6Y0dGeWMyVXRiV0YwY21sNExYTmxjblpwWTJVbk8xeHVhVzF3YjNKMElIdGlhVzlNWVhsdmRYUjlJR1p5YjIwZ0p5NHZZbWx2TFd4aGVXOTFkQ2M3WEc1cGJYQnZjblFnZTAxRFRFOXdkR2x2Ym5Nc0lGTndZWEp6WlUxaGRISnBlRTlpYW1WamRIMGdabkp2YlNBbkxpOTBlWEJsY3ljN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCa1pXWmhkV3gwVFVOTVQzQjBhVzl1Y3pvZ1RVTk1UM0IwYVc5dWN5QTlJSHRjYmlBZ1pYaHdZVzVrUm1GamRHOXlPaUF5TEZ4dUlDQnRZWGhKZEdWeVlYUnBiMjV6T2lBMUxGeHVJQ0JwYm1ac1lYUmxSbUZqZEc5eU9pQXlMRnh1SUNCdGRXeDBSbUZqZEc5eU9pQXhMRnh1ZlR0Y2JseHVaWGh3YjNKMElHTnNZWE56SUUxRFRGTndZWEp6WlZKbFpIVmpaWElnZTF4dUlDQndjbWwyWVhSbElGOXZjSFJwYjI1ek9pQk5RMHhQY0hScGIyNXpPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLRzl3ZEhNNklGQmhjblJwWVd3OFRVTk1UM0IwYVc5dWN6NGdQU0I3ZlNrZ2UxeHVJQ0FnSUhSb2FYTXVYMjl3ZEdsdmJuTWdQU0I3TGk0dVpHVm1ZWFZzZEUxRFRFOXdkR2x2Ym5Nc0lDNHVMbTl3ZEhOOU8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHRnplVzVqSUhSeVlXNXpabTl5YlNoemNHRnljMlZOWVhSeWFYZzZJRk53WVhKelpVMWhkSEpwZUZKbGMzVnNkQ3dnYmxKdmQzTTZJRzUxYldKbGNpa2dlMXh1SUNBZ0lDOHZJSFJsYzNSWGIzSnJaWEpOZFd4MGFYQnNlU2dwTzF4dUlDQWdJQzh2SUhKbGRIVnliaUJ1WlhjZ1NXNTBNekpCY25KaGVTaHVVbTkzY3lrN1hHNGdJQ0FnYkdWMElITndZWEp6WlU5aWFtVmpkQ0E5SUhSb2FYTXVkRzlQWW1wbFkzUkdiM0p0S0hOd1lYSnpaVTFoZEhKcGVDazdYRzRnSUNBZ2FXWWdLSFJvYVhNdVgyOXdkR2x2Ym5NdWJXRjRTWFJsY21GMGFXOXVjeUErSURBcElIdGNiaUFnSUNBZ0lIUm9hWE11WVdSa1RHOXZjSE1vYzNCaGNuTmxUMkpxWldOMExDQnVVbTkzY3lrN1hHNGdJQ0FnSUNCMGFHbHpMbTV2Y20xaGJHbDZaU2h6Y0dGeWMyVlBZbXBsWTNRcE8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQjBhR2x6TGw5dmNIUnBiMjV6TG0xaGVFbDBaWEpoZEdsdmJuTTdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1FnUFNCMGFHbHpMbVY0Y0dGdVpDaHpjR0Z5YzJWUFltcGxZM1FzSUc1U2IzZHpLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXBibVpzWVhSbEtITndZWEp6WlU5aWFtVmpkQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVibTl5YldGc2FYcGxLSE53WVhKelpVOWlhbVZqZENrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElIdGpiSFZ6ZEdWeWN5d2dhWE1zSUdwemZTQTlJSFJvYVhNdVlYTnphV2R1UTJ4MWMzUmxjbk1vYzNCaGNuTmxUMkpxWldOMExDQnVVbTkzY3lrN1hHNGdJQ0FnZEdocGN5NWpiM0p5WldOMFEyeDFjM1JsY25Nb1kyeDFjM1JsY25NcE8xeHVJQ0FnSUdOdmJuTjBJR1Z0WW1Wa1pHbHVaM01nUFNCaGQyRnBkQ0IwYUdsekxteGhlVzkxZENoamJIVnpkR1Z5Y3l3Z2MzQmhjbk5sVDJKcVpXTjBMQ0J1VW05M2N5azdYRzRnSUNBZ2NtVjBkWEp1SUh0amJIVnpkR1Z5Y3l3Z1pXMWlaV1JZT2lCbGJXSmxaR1JwYm1kekxtVnRZbVZrV0N3Z1pXMWlaV1JaT2lCbGJXSmxaR1JwYm1kekxtVnRZbVZrV1N3Z2FYTXNJR3B6ZlR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1kyOXljbVZqZEVOc2RYTjBaWEp6S0dOc2RYTjBaWEp6T2lCdWRXMWlaWEpiWFNrZ2UxeHVJQ0FnSUdOdmJuTjBJR05zZFhOMFpYSlRhWHBsVFdGd09pQjdXMTg2SUc1MWJXSmxjbDA2SUc1MWJXSmxjbjBnUFNCN2ZUdGNiaUFnSUNCbWIzSWdLR052Ym5OMElHTnNkWE4wWlhJZ2IyWWdZMngxYzNSbGNuTXBJSHRjYmlBZ0lDQWdJR2xtSUNnaFkyeDFjM1JsY2xOcGVtVk5ZWEJiWTJ4MWMzUmxjbDBwWEc0Z0lDQWdJQ0FnSUdOc2RYTjBaWEpUYVhwbFRXRndXMk5zZFhOMFpYSmRJRDBnTUR0Y2JpQWdJQ0FnSUdOc2RYTjBaWEpUYVhwbFRXRndXMk5zZFhOMFpYSmRLeXM3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhOdmNuUmxaRWx1WkdWNFpYTWdQU0JQWW1wbFkzUXVhMlY1Y3loamJIVnpkR1Z5VTJsNlpVMWhjQ2t1YldGd0tFNTFiV0psY2lrdWMyOXlkQ2dvWVN3Z1lpa2dQVDRnWTJ4MWMzUmxjbE5wZW1WTllYQmJZVjBnTFNCamJIVnpkR1Z5VTJsNlpVMWhjRnRpWFNrN1hHNGdJQ0FnWTI5dWMzUWdZMngxYzNSbGNrMWhjRG9nZTF0Zk9pQnVkVzFpWlhKZE9pQnVkVzFpWlhKOUlEMGdlMzA3WEc0Z0lDQWdjMjl5ZEdWa1NXNWtaWGhsY3k1bWIzSkZZV05vS0NoamJIVnpkR1Z5U1dSNExDQnBLU0E5UGlCamJIVnpkR1Z5VFdGd1cyTnNkWE4wWlhKSlpIaGRJRDBnYVNBcklERXBPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dZMngxYzNSbGNuTXViR1Z1WjNSb095QnBLeXNwWEc0Z0lDQWdJQ0JqYkhWemRHVnljMXRwWFNBOUlHTnNkWE4wWlhKTllYQmJZMngxYzNSbGNuTmJhVjFkTzF4dUlDQWdJQzh2SUd4bGRDQmpkWEpEYkhWemRHVnlJRDBnTVR0Y2JpQWdJQ0F2THlCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHTnNkWE4wWlhKekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdMeThnSUNCcFppQW9JV05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbk5iYVYxZEtTQjdYRzRnSUNBZ0x5OGdJQ0FnSUdOc2RYTjBaWEpOWVhCYlkyeDFjM1JsY25OYmFWMWRJRDBnWTNWeVEyeDFjM1JsY2p0Y2JpQWdJQ0F2THlBZ0lDQWdZMngxYzNSbGNuTmJhVjBnUFNCamRYSkRiSFZ6ZEdWeU8xeHVJQ0FnSUM4dklDQWdJQ0JqZFhKRGJIVnpkR1Z5S3lzN1hHNGdJQ0FnTHk4Z0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUM4dklDQWdJQ0JqYkhWemRHVnljMXRwWFNBOUlHTnNkWE4wWlhKTllYQmJZMngxYzNSbGNuTmJhVjFkTzF4dUlDQWdJQzh2SUNBZ2ZWeHVJQ0FnSUM4dklIMWNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ2JHRjViM1YwS0dOc2RYTjBaWEp6T2lCdWRXMWlaWEpiWFN3Z2MzQmhjbk5sVFdGMGNtbDRPaUJUY0dGeWMyVk5ZWFJ5YVhoUFltcGxZM1FzSUc1U2IzZHpPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQmpiMjV6ZENCbGJXSmxaRmdnUFNCdVpYY2dSbXh2WVhRek1rRnljbUY1S0c1U2IzZHpLUzVtYVd4c0tEQXBPMXh1SUNBZ0lHTnZibk4wSUdWdFltVmtXU0E5SUc1bGR5QkdiRzloZERNeVFYSnlZWGtvYmxKdmQzTXBMbVpwYkd3b01DazdYRzRnSUNBZ1kyOXVjM1FnWTJ4MWMzUmxjazFoY0RvZ2UxdGZPaUJ1ZFcxaVpYSmRPaUJ1ZFcxaVpYSmJYWDBnUFNCN2ZUdGNiaUFnSUNCamJIVnpkR1Z5Y3k1bWIzSkZZV05vS0NoamJIVnpkR1Z5TENCcEtTQTlQaUI3WEc0Z0lDQWdJQ0JwWmlBb0lXTnNkWE4wWlhKTllYQmJZMngxYzNSbGNsMHBYRzRnSUNBZ0lDQWdJR05zZFhOMFpYSk5ZWEJiWTJ4MWMzUmxjbDBnUFNCYlhUdGNiaUFnSUNBZ0lHTnNkWE4wWlhKTllYQmJZMngxYzNSbGNsMHVjSFZ6YUNocEtUdGNiaUFnSUNCOUtUdGNiaUFnSUNBdkx5QmpiMjV6ZENCdVEyeDFjM1JsY25NZ1BTQlBZbXBsWTNRdWEyVjVjeWhqYkhWemRHVnlUV0Z3S1M1c1pXNW5kR2c3WEc0Z0lDQWdMeThnWTI5dWMzUWdjR1Z5VW05M0lEMGdUV0YwYUM1bWJHOXZjaWhOWVhSb0xuTnhjblFvYmtOc2RYTjBaWEp6S1NrN1hHNGdJQ0FnYkdWMElHTnNkWE4wWlhKT2RXMGdQU0F3TzF4dUlDQWdJR052Ym5OMElITnZjblJsWkVOc2RYTjBaWEpPWVcxbGN5QTlJRTlpYW1WamRDNXJaWGx6S0dOc2RYTjBaWEpOWVhBcE8xeHVJQ0FnSUhOdmNuUmxaRU5zZFhOMFpYSk9ZVzFsY3k1emIzSjBLQ2hoTENCaUtTQTlQaUJqYkhWemRHVnlUV0Z3VzJJZ1lYTWdZVzU1WFM1c1pXNW5kR2dnTFNCamJIVnpkR1Z5VFdGd1cyRWdZWE1nWVc1NVhTNXNaVzVuZEdncE8xeHVJQ0FnSUd4bGRDQndaWEpTYjNjZ1BTQTJPMXh1WEc0Z0lDQWdiR1YwSUhsUFptWnpaWFFnUFNBd08xeHVJQ0FnSUdOdmJuTjBJR3hoZVc5MWRGTnBlbVVnUFNBMU8xeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ1kyeDFjM1JsY2s1aGJXVWdiMllnYzI5eWRHVmtRMngxYzNSbGNrNWhiV1Z6S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYkhWemRHVnlJRDBnWTJ4MWMzUmxjazFoY0Z0amJIVnpkR1Z5VG1GdFpTQmhjeUJoYm5sZElUdGNiaUFnSUNBZ0lHTnZibk4wSUdWdFltVmtaR2x1WjNNZ1BTQmhkMkZwZENCaWFXOU1ZWGx2ZFhRb1kyeDFjM1JsY2l3Z2MzQmhjbk5sVFdGMGNtbDRMQ0F3TGpBd01TazdYRzRnSUNBZ0lDQnBaaUFvWTJ4MWMzUmxjazUxYlNBOVBUMGdUV0YwYUM1alpXbHNLSEJsY2xKdmR5QXZJREV1TlNrcElIdGNiaUFnSUNBZ0lDQWdZMngxYzNSbGNrNTFiU0E5SURBN1hHNGdJQ0FnSUNBZ0lIbFBabVp6WlhRZ0t6MGdiR0Y1YjNWMFUybDZaU0F2SUhCbGNsSnZkenRjYmlBZ0lDQWdJQ0FnY0dWeVVtOTNJRDBnVFdGMGFDNWpaV2xzS0hCbGNsSnZkeUFxSURFdU5TazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmpiMjV6ZENCdlptWnpaWFJZSUQwZ0tDaGpiSFZ6ZEdWeVRuVnRJQ1VnY0dWeVVtOTNLU0FxSUd4aGVXOTFkRk5wZW1VZ0x5QndaWEpTYjNjcElDb2dNUzQxTzF4dUlDQWdJQ0FnTHk4Z1kyOXVjM1FnYjJabWMyVjBXU0E5SUUxaGRHZ3VabXh2YjNJb1kyeDFjM1JsY2s1MWJTQXZJSEJsY2xKdmR5a2dLaUF5TzF4dVhHNGdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHVnRZbVZrWkdsdVozTXVaVzFpWldSWUxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0FnSUdWdFltVmtXRnRqYkhWemRHVnlXMmxkWFNBOUlHVnRZbVZrWkdsdVozTXVaVzFpWldSWVcybGRJQ29nYkdGNWIzVjBVMmw2WlNBdklIQmxjbEp2ZHlBcklHOW1abk5sZEZnN1hHNGdJQ0FnSUNBZ0lHVnRZbVZrV1Z0amJIVnpkR1Z5VzJsZFhTQTlJR1Z0WW1Wa1pHbHVaM011WlcxaVpXUlpXMmxkSUNvZ2JHRjViM1YwVTJsNlpTQXZJSEJsY2xKdmR5QXJJSGxQWm1aelpYUTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQmpiSFZ6ZEdWeVRuVnRLeXM3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCN1pXMWlaV1JZTENCbGJXSmxaRmw5TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCdFpYSm5aVU5zZFhOMFpYSnpLR05zZFhOMFpYSnpPaUJ1ZFcxaVpYSmJYU3dnYVRvZ2JuVnRZbVZ5TENCcU9pQnVkVzFpWlhJcElIdGNiaUFnSUNCamIyNXpkQ0JwUTJ4MWMzUmxjaUE5SUdOc2RYTjBaWEp6VzJsZE8xeHVJQ0FnSUdOdmJuTjBJR3BEYkhWemRHVnlJRDBnWTJ4MWMzUmxjbk5iYWwwN1hHNGdJQ0FnWm05eUlDaHNaWFFnYXlBOUlEQTdJR3NnUENCamJIVnpkR1Z5Y3k1c1pXNW5kR2c3SUdzckt5a2dlMXh1SUNBZ0lDQWdhV1lnS0dOc2RYTjBaWEp6VzJ0ZElEMDlQU0JxUTJ4MWMzUmxjaWxjYmlBZ0lDQWdJQ0FnWTJ4MWMzUmxjbk5iYTEwZ1BTQnBRMngxYzNSbGNqdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NIVmliR2xqSUdGemMybG5ia05zZFhOMFpYSnpLSE53WVhKelpVMWhkSEpwZURvZ1UzQmhjbk5sVFdGMGNtbDRUMkpxWldOMExDQnVVbTkzY3pvZ2JuVnRZbVZ5S1NCN1hHNGdJQ0FnYkdWMElHTnNkWE4wWlhKT2RXMGdQU0F3TzF4dUlDQWdJR052Ym5OMElHbHpPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJR3B6T2lCdWRXMWlaWEpiWFNBOUlGdGRPMXh1SUNBZ0lHTnZibk4wSUc5eVpHVnlJRDBnVFdGMGFDNW1iRzl2Y2loTllYUm9MbTFoZUNoTllYUm9MbXh2WnpFd0tHNVNiM2R6S1N3Z01pa3BJQ3NnTVR0Y2JpQWdJQ0JqYjI1emRDQnRhVzVQY21SbGNpQTlJRTFoZEdndWNHOTNLREV3TENCdmNtUmxjaWs3WEc0Z0lDQWdZMjl1YzNRZ1kyeDFjM1JsY25NNklHNTFiV0psY2x0ZElEMGdibVYzSUVGeWNtRjVLRzVTYjNkektTNW1hV3hzS0MweEtUdGNiaUFnSUNCbWIzSWdLR052Ym5OMElHa2diMllnVDJKcVpXTjBMbXRsZVhNb2MzQmhjbk5sVFdGMGNtbDRLU2tnZTF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCcUlHOW1JRTlpYW1WamRDNXJaWGx6S0hOd1lYSnpaVTFoZEhKcGVGdHBJR0Z6SUdGdWVWMHBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaE5ZWFJvTG5KdmRXNWtLSE53WVhKelpVMWhkSEpwZUZ0cElHRnpJR0Z1ZVYxYmFpQmhjeUJoYm5sZElDb2diV2x1VDNKa1pYSXBJQzhnYldsdVQzSmtaWElnUGlBd0lDWW1YRzRnSUNBZ0lDQWdJQ0FnYzNCaGNuTmxUV0YwY21sNFcya2dZWE1nWVc1NVhWdHFJR0Z6SUdGdWVWMGdJVDA5SUU1MWJXSmxjaWhwS1NBbUppQk9kVzFpWlhJb2Fpa2dQaUJPZFcxaVpYSW9hU2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBjeTV3ZFhOb0tFNTFiV0psY2locEtTazdYRzRnSUNBZ0lDQWdJQ0FnYW5NdWNIVnphQ2hPZFcxaVpYSW9haWtwTzF4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2hqYkhWemRHVnljMXRPZFcxaVpYSW9hU2xkSUNFOVBTQXRNU0FtSmlCamJIVnpkR1Z5YzF0T2RXMWlaWElvYWlsZElDRTlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHTnNkWE4wWlhKelcwNTFiV0psY2locEtWMGdJVDA5SUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhxS1YwcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2FYTXViV1Z5WjJWRGJIVnpkR1Z5Y3loamJIVnpkR1Z5Y3l3Z1RuVnRZbVZ5S0drcExDQk9kVzFpWlhJb2Fpa3BPMXh1SUNBZ0lDQWdJQ0FnSUgwZ1pXeHpaU0JwWmlBb1kyeDFjM1JsY25OYlRuVnRZbVZ5S0drcFhTQWhQVDBnTFRFcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhxS1YwZ1BTQmpiSFZ6ZEdWeWMxdE9kVzFpWlhJb2FTbGRPMXh1SUNBZ0lDQWdJQ0FnSUgwZ1pXeHpaU0JwWmlBb1kyeDFjM1JsY25OYlRuVnRZbVZ5S0dvcFhTQWhQVDBnTFRFcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOc2RYTjBaWEp6VzA1MWJXSmxjaWhwS1YwZ1BTQmpiSFZ6ZEdWeWMxdE9kVzFpWlhJb2FpbGRPMXh1SUNBZ0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiSFZ6ZEdWeVRuVnRLeXM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiSFZ6ZEdWeWMxdE9kVzFpWlhJb2FTbGRJRDBnWTJ4MWMzUmxjazUxYlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJR05zZFhOMFpYSnpXMDUxYldKbGNpaHFLVjBnUFNCamJIVnpkR1Z5VG5WdE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQm1iM0lnS0d4bGRDQnBQVEE3SUdrZ1BDQmpiSFZ6ZEdWeWN5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHTnNkWE4wWlhKelcybGRJRDA5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdJQ0JqYkhWemRHVnlUblZ0SUNzck8xeHVJQ0FnSUNBZ0lDQmpiSFZ6ZEdWeWMxdHBYU0E5SUdOc2RYTjBaWEpPZFcwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjdZMngxYzNSbGNuTXNJR2x6TENCcWMzMDdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdkRzlQWW1wbFkzUkdiM0p0S0hOd1lYSnpaVTFoZEhKcGVEb2dVM0JoY25ObFRXRjBjbWw0VW1WemRXeDBLVG9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wSUh0Y2JpQWdJQ0JqYjI1emRDQnpjR0Z5YzJWUFltcGxZM1E2SUh0Ylh6b2diblZ0WW1WeVhUb2dlMXRmT2lCdWRXMWlaWEpkT2lCdWRXMWlaWEo5ZlNBOUlIdDlPMXh1SUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2djM0JoY25ObFRXRjBjbWw0TG1rdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJR2xtSUNnaGMzQmhjbk5sVDJKcVpXTjBXM053WVhKelpVMWhkSEpwZUM1cFcybGRYU2xjYmlBZ0lDQWdJQ0FnYzNCaGNuTmxUMkpxWldOMFczTndZWEp6WlUxaGRISnBlQzVwVzJsZFhTQTlJSHQ5TzF4dUlDQWdJQ0FnYzNCaGNuTmxUMkpxWldOMFczTndZWEp6WlUxaGRISnBlQzVwVzJsZFhWdHpjR0Z5YzJWTllYUnlhWGd1YWx0cFhWMGdQU0F4SUMwZ2MzQmhjbk5sVFdGMGNtbDRMbVJwYzNSaGJtTmxXMmxkTzF4dUlDQWdJQ0FnYVdZZ0tDRnpjR0Z5YzJWUFltcGxZM1JiYzNCaGNuTmxUV0YwY21sNExtcGJhVjFkS1Z4dUlDQWdJQ0FnSUNCemNHRnljMlZQWW1wbFkzUmJjM0JoY25ObFRXRjBjbWw0TG1wYmFWMWRJRDBnZTMwN1hHNGdJQ0FnSUNCemNHRnljMlZQWW1wbFkzUmJjM0JoY25ObFRXRjBjbWw0TG1wYmFWMWRXM053WVhKelpVMWhkSEpwZUM1cFcybGRYU0E5SURFZ0xTQnpjR0Z5YzJWTllYUnlhWGd1WkdsemRHRnVZMlZiYVYwN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnpjR0Z5YzJWUFltcGxZM1E3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGa1pFeHZiM0J6S0hOd1lYSnpaVTlpYW1WamREb2dVM0JoY25ObFRXRjBjbWw0VDJKcVpXTjBMQ0J1VW05M2N6b2diblZ0WW1WeUtTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVVbTkzY3pzZ2FTc3JLU0I3WEc0Z0lDQWdJQ0JwWmlBb0lYTndZWEp6WlU5aWFtVmpkRnRwWFNsY2JpQWdJQ0FnSUNBZ2MzQmhjbk5sVDJKcVpXTjBXMmxkSUQwZ2UzMDdYRzRnSUNBZ0lDQnpjR0Z5YzJWUFltcGxZM1JiYVYxYmFWMGdQU0IwYUdsekxsOXZjSFJwYjI1ekxtMTFiSFJHWVdOMGIzSTdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnViM0p0WVd4cGVtVW9jM0JoY25ObFQySnFaV04wT2lCVGNHRnljMlZOWVhSeWFYaFBZbXBsWTNRcElIdGNiaUFnSUNCbWIzSWdLR052Ym5OMElHa2diMllnVDJKcVpXTjBMbXRsZVhNb2MzQmhjbk5sVDJKcVpXTjBLU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbTkzSUQwZ2MzQmhjbk5sVDJKcVpXTjBXMmtnWVhNZ1lXNTVYVHRjYmlBZ0lDQWdJR3hsZENCemRXMGdQU0F3TzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCcUlHOW1JRTlpYW1WamRDNXJaWGx6S0hKdmR5a3BYRzRnSUNBZ0lDQWdJSE4xYlNBclBTQnliM2RiYWlCaGN5QmhibmxkTzF4dUlDQWdJQ0FnYVdZZ0tITjFiU0E5UFQwZ01Da2dZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR29nYjJZZ1QySnFaV04wTG10bGVYTW9jbTkzS1NsY2JpQWdJQ0FnSUNBZ2MzQmhjbk5sVDJKcVpXTjBXMmtnWVhNZ1lXNTVYVnRxSUdGeklHRnVlVjBnTHowZ2MzVnRPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdaWGh3WVc1a0tITndZWEp6WlU5aWFtVmpkRG9nVTNCaGNuTmxUV0YwY21sNFQySnFaV04wTENCdVVtOTNjem9nYm5WdFltVnlLU0I3WEc0Z0lDQWdZMjl1YzNRZ1pYaHdZVzVrWldSUFltcGxZM1E2SUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZENBOUlIdDlPMXh1SUNBZ0lHTnZibk4wSUc5eVpHVnlJRDBnVFdGMGFDNW1iRzl2Y2loTllYUm9MbTFoZUNoTllYUm9MbXh2WnpFd0tHNVNiM2R6S1N3Z01pa3BJQ3NnTVR0Y2JpQWdJQ0JqYjI1emRDQnRhVzVQY21SbGNpQTlJRTFoZEdndWNHOTNLREV3TENCdmNtUmxjaWs3WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J1VW05M2N6c2dhU3NyS1NCN1hHNGdJQ0FnSUNCcFppQW9JWE53WVhKelpVOWlhbVZqZEZ0cFhTbGNiaUFnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQXZMeUJqYjI1emRDQnliM2NnUFNCemNHRnljMlZQWW1wbFkzUmJhVjA3WEc0Z0lDQWdJQ0JsZUhCaGJtUmxaRTlpYW1WamRGdHBYU0E5SUh0OU8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJR2s3SUdvZ1BDQnVVbTkzY3pzZ2Fpc3JLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hjM0JoY25ObFQySnFaV04wVzJsZFB5NWJhbDBwWEc0Z0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhaaGJDQTlJSFJvYVhNdVoyVjBSWGh3WVc1a1ZtRnNkV1VvYzNCaGNuTmxUMkpxWldOMExDQnBMQ0JxS1RzZ0x5OXdjblZ1YVc1bklITjBaWEJjYmlBZ0lDQWdJQ0FnYVdZZ0tFMWhkR2d1Y205MWJtUW9kbUZzSUNvZ2JXbHVUM0prWlhJcElDOGdiV2x1VDNKa1pYSWdQaUF3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdaWGh3WVc1a1pXUlBZbXBsWTNSYmFWMWJhbDBnUFNCMllXdzdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tDRmxlSEJoYm1SbFpFOWlhbVZqZEZ0cVhTbGNiaUFnSUNBZ0lDQWdJQ0FnSUdWNGNHRnVaR1ZrVDJKcVpXTjBXMnBkSUQwZ2UzMDdYRzRnSUNBZ0lDQWdJQ0FnWlhod1lXNWtaV1JQWW1wbFkzUmJhbDFiYVYwZ1BTQjJZV3c3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHVjRjR0Z1WkdWa1QySnFaV04wTzF4dUlDQjlYRzVjYmlBZ0x5OGdjSEpwZG1GMFpTQndjblZ1WlNoeWIzYzZJRk53WVhKelpVMWhkSEpwZUU5aWFtVmpkRnR1ZFcxaVpYSmRLU0I3WEc1Y2JpQWdMeThnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdhVzVtYkdGMFpTaHpjR0Z5YzJWUFltcGxZM1E2SUZOd1lYSnpaVTFoZEhKcGVFOWlhbVZqZENrZ2UxeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2FTQnZaaUJQWW1wbFkzUXVhMlY1Y3loemNHRnljMlZQWW1wbFkzUXBLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnliM2NnUFNCemNHRnljMlZQWW1wbFkzUmJhU0JoY3lCaGJubGRPMXh1SUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JxSUc5bUlFOWlhbVZqZEM1clpYbHpLSEp2ZHlrcFhHNGdJQ0FnSUNBZ0lITndZWEp6WlU5aWFtVmpkRnRwSUdGeklHRnVlVjFiYWlCaGN5QmhibmxkSUQwZ1RXRjBhQzV3YjNjb2MzQmhjbk5sVDJKcVpXTjBXMmtnWVhNZ1lXNTVYVnRxSUdGeklHRnVlVjBzSUhSb2FYTXVYMjl3ZEdsdmJuTXVhVzVtYkdGMFpVWmhZM1J2Y2lrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCblpYUkZlSEJoYm1SV1lXeDFaU2h6Y0dGeWMyVlBZbXBsWTNRNklGTndZWEp6WlUxaGRISnBlRTlpYW1WamRDd2dhVG9nWVc1NUxDQnFPaUJoYm5rcElIdGNiaUFnSUNCc1pYUWdkbUZzSUQwZ01EdGNiaUFnSUNCamIyNXpkQ0JqZFhKeVpXNTBTVzVrWlhobGN5QTlJRTlpYW1WamRDNXJaWGx6S0hOd1lYSnpaVTlpYW1WamRGdHBYU0EvUHlCN2ZTazdYRzRnSUNBZ1kyOXVjM1FnYjNSb1pYSkpibVJsZUdWeklEMGdUMkpxWldOMExtdGxlWE1vYzNCaGNuTmxUMkpxWldOMFcycGRJRDgvSUh0OUtUdGNiaUFnSUNCbWIzSWdLR052Ym5OMElHc2diMllnWTNWeWNtVnVkRWx1WkdWNFpYTXBJSHRjYmlBZ0lDQWdJR2xtSUNodmRHaGxja2x1WkdWNFpYTXVhVzVqYkhWa1pYTW9heWtwWEc0Z0lDQWdJQ0FnSUhaaGJDQXJQU0J6Y0dGeWMyVlBZbXBsWTNSYmFWMWJheUJoY3lCaGJubGRJQ29nYzNCaGNuTmxUMkpxWldOMFcycGRXMnNnWVhNZ1lXNTVYVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhaaGJEdGNiaUFnZlZ4dWZWeHVYRzRpWFgwPSIsImltcG9ydCB7IFNwYXJzZU1hdHJpeFNlcnZpY2UgfSBmcm9tICcuLi9kaXN0YW5jZS1tYXRyaXgvc3BhcnNlLW1hdHJpeC1zZXJ2aWNlJztcbmltcG9ydCB7IE1DTFNwYXJzZVJlZHVjZXIgfSBmcm9tICcuL21hcmNvdi1jbHVzdGVyJztcbm9ubWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHsgZGF0YSwgdGhyZXNob2xkLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZCwgZGlzdGFuY2VGbkFyZ3MsIGRpc3RhbmNlRm5zLCBtYXhJdGVyYXRpb25zIH0gPSBldmVudC5kYXRhO1xuICAgIGNvbnN0IHNwYXJzZSA9IGF3YWl0IG5ldyBTcGFyc2VNYXRyaXhTZXJ2aWNlKClcbiAgICAgICAgLmNhbGNNdWx0aUNvbHVtbihkYXRhLCBkaXN0YW5jZUZucywgdGhyZXNob2xkIC8gMTAwLCBkaXN0YW5jZUZuQXJncywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2QpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IG5ldyBNQ0xTcGFyc2VSZWR1Y2VyKHsgbWF4SXRlcmF0aW9uczogbWF4SXRlcmF0aW9ucyA/PyA1IH0pLnRyYW5zZm9ybShzcGFyc2UsIGRhdGFbMF0ubGVuZ3RoKTtcbiAgICBwb3N0TWVzc2FnZSh7IHJlcyB9KTtcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liV05zTFhkdmNtdGxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltMWpiQzEzYjNKclpYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhGUVVGRExHMUNRVUZ0UWl4RlFVRkRMRTFCUVUwc01FTkJRVEJETEVOQlFVTTdRVUZITjBVc1QwRkJUeXhGUVVGRExHZENRVUZuUWl4RlFVRkRMRTFCUVUwc2EwSkJRV3RDTEVOQlFVTTdRVUZGYkVRc1UwRkJVeXhIUVVGSExFdEJRVXNzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlR0SlFVTXhRaXhOUVVGTkxFVkJRVU1zU1VGQlNTeEZRVUZGTEZOQlFWTXNSVUZCUlN4UFFVRlBMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNZMEZCWXl4RlFVRkZMRmRCUVZjc1JVRkJSU3hoUVVGaExFVkJRVU1zUjBGSGFFSXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJRenRKUVVNeFJpeE5RVUZOTEUxQlFVMHNSMEZCUnl4TlFVRk5MRWxCUVVrc2JVSkJRVzFDTEVWQlFVVTdVMEZETTBNc1pVRkJaU3hEUVVGRExFbEJRVWtzUlVGQlJTeFhRVUZYTEVWQlFVVXNVMEZCVXl4SFFVRkhMRWRCUVVjc1JVRkJSU3hqUVVGakxFVkJRVVVzVDBGQlR5eEZRVUZGTEdsQ1FVRnBRaXhEUVVGRExFTkJRVU03U1VGRGJrY3NUVUZCVFN4SFFVRkhMRWRCUVVjc1RVRkJUU3hKUVVGSkxHZENRVUZuUWl4RFFVRkRMRVZCUVVNc1lVRkJZU3hGUVVGRkxHRkJRV0VzU1VGQlNTeERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJRemxITEZkQlFWY3NRMEZCUXl4RlFVRkRMRWRCUVVjc1JVRkJReXhEUVVGRExFTkJRVU03UVVGRGNrSXNRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHRUY0dGeWMyVk5ZWFJ5YVhoVFpYSjJhV05sZlNCbWNtOXRJQ2N1TGk5a2FYTjBZVzVqWlMxdFlYUnlhWGd2YzNCaGNuTmxMVzFoZEhKcGVDMXpaWEoyYVdObEp6dGNibWx0Y0c5eWRDQjdSR2x6ZEdGdVkyVkJaMmR5WldkaGRHbHZiazFsZEdodlpIMGdabkp2YlNBbkxpNHZaR2x6ZEdGdVkyVXRiV0YwY21sNEwzUjVjR1Z6Snp0Y2JtbHRjRzl5ZENCN1MyNXZkMjVOWlhSeWFXTnpmU0JtY205dElDY3VMaTkwZVhCbFpDMXRaWFJ5YVdOekp6dGNibWx0Y0c5eWRDQjdUVU5NVTNCaGNuTmxVbVZrZFdObGNuMGdabkp2YlNBbkxpOXRZWEpqYjNZdFkyeDFjM1JsY2ljN1hHNWNibTl1YldWemMyRm5aU0E5SUdGemVXNWpJQ2hsZG1WdWRDa2dQVDRnZTF4dUlDQmpiMjV6ZENCN1pHRjBZU3dnZEdoeVpYTm9iMnhrTENCM1pXbG5hSFJ6TENCaFoyZHlaV2RoZEdsdmJrMWxkR2h2WkN3Z1pHbHpkR0Z1WTJWR2JrRnlaM01zSUdScGMzUmhibU5sUm01ekxDQnRZWGhKZEdWeVlYUnBiMjV6ZlRwY2JpQWdJSHRrWVhSaE9pQmhibmxiWFZ0ZExDQjBhSEpsYzJodmJHUTZJRzUxYldKbGNpeGNiaUFnSUNCM1pXbG5hSFJ6T2lCdWRXMWlaWEpiWFN3Z1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRNklFUnBjM1JoYm1ObFFXZG5jbVZuWVhScGIyNU5aWFJvYjJRc1hHNGdJQ0FnWkdsemRHRnVZMlZHYm5NNklFdHViM2R1VFdWMGNtbGpjMXRkTENCa2FYTjBZVzVqWlVadVFYSm5jem9nWVc1NVcxMHNJRzFoZUVsMFpYSmhkR2x2Ym5NNklHNTFiV0psY24wZ1BTQmxkbVZ1ZEM1a1lYUmhPMXh1SUNCamIyNXpkQ0J6Y0dGeWMyVWdQU0JoZDJGcGRDQnVaWGNnVTNCaGNuTmxUV0YwY21sNFUyVnlkbWxqWlNncFhHNGdJQ0FnTG1OaGJHTk5kV3gwYVVOdmJIVnRiaWhrWVhSaExDQmthWE4wWVc1alpVWnVjeXdnZEdoeVpYTm9iMnhrSUM4Z01UQXdMQ0JrYVhOMFlXNWpaVVp1UVhKbmN5d2dkMlZwWjJoMGN5d2dZV2RuY21WbllYUnBiMjVOWlhSb2IyUXBPMXh1SUNCamIyNXpkQ0J5WlhNZ1BTQmhkMkZwZENCdVpYY2dUVU5NVTNCaGNuTmxVbVZrZFdObGNpaDdiV0Y0U1hSbGNtRjBhVzl1Y3pvZ2JXRjRTWFJsY21GMGFXOXVjeUEvUHlBMWZTa3VkSEpoYm5ObWIzSnRLSE53WVhKelpTd2daR0YwWVZzd1hTNXNaVzVuZEdncE8xeHVJQ0J3YjNOMFRXVnpjMkZuWlNoN2NtVnpmU2s3WEc1OU8xeHVJbDE5IiwiaW1wb3J0IHsgRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZHMgfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCBjb25zdCBpc05pbCA9ICh4KSA9PiB4ID09PSBudWxsIHx8IHggPT09IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRTbWFsbGVyKGRpc3RhbmNlc0FyLCBpbmRleGVzLCBudW0sIGluZGV4KSB7XG4gICAgaWYgKG51bSA+IGRpc3RhbmNlc0FyW2Rpc3RhbmNlc0FyLmxlbmd0aCAtIDFdKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgbmV3UG9zaXRpb24gPSBkaXN0YW5jZXNBci5maW5kSW5kZXgoKHYpID0+IG51bSA8IHYpO1xuICAgIGRpc3RhbmNlc0FyLnBvcCgpO1xuICAgIGRpc3RhbmNlc0FyLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgbnVtKTtcbiAgICBpbmRleGVzLnBvcCgpO1xuICAgIGluZGV4ZXMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpbmRleCk7XG59XG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0TGFyZ2VyKGRpc3RhbmNlc0FyLCBpbmRleGVzLCBudW0sIGluZGV4KSB7XG4gICAgaWYgKG51bSA8IGRpc3RhbmNlc0FyW2Rpc3RhbmNlc0FyLmxlbmd0aCAtIDFdKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgbmV3UG9zaXRpb24gPSBkaXN0YW5jZXNBci5maW5kSW5kZXgoKHYpID0+IG51bSA+IHYpO1xuICAgIGRpc3RhbmNlc0FyLnBvcCgpO1xuICAgIGRpc3RhbmNlc0FyLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgbnVtKTtcbiAgICBpbmRleGVzLnBvcCgpO1xuICAgIGluZGV4ZXMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpbmRleCk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0QWdncmVnYXRpb25GdW5jdGlvbihhZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0cykge1xuICAgIHN3aXRjaCAoYWdncmVnYXRpb25NZXRob2QpIHtcbiAgICAgICAgY2FzZSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5NQU5IQVRUQU46XG4gICAgICAgICAgICByZXR1cm4gKHZzKSA9PiB2cy5yZWR1Y2UoKGFjYywgdmFsLCBpZHgpID0+IGFjYyArIHZhbCAqIHdlaWdodHNbaWR4XSwgMCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gKHZzKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZXVjbGlkZWFuXG4gICAgICAgICAgICAgICAgY29uc3Qgc3VtID0gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyAodmFsICogd2VpZ2h0c1tpZHhdKSAqKiAyLCAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KHN1bSk7XG4gICAgICAgICAgICB9O1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRYUnBiSE11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SjFkR2xzY3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRVFJDTERCQ1FVRXdRaXhGUVVGRExFMUJRVTBzVTBGQlV5eERRVUZETzBGQlJUbEZMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NVMEZCVXl4RFFVRkRPMEZCUlM5RUxFMUJRVTBzVlVGQlZTeGhRVUZoTEVOQlFVTXNWMEZCY1VJc1JVRkJSU3hQUVVGcFFpeEZRVUZGTEVkQlFWY3NSVUZCUlN4TFFVRmhPMGxCUTJoSExFbEJRVWtzUjBGQlJ5eEhRVUZITEZkQlFWY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1RVRkJUU3hIUVVGRExFTkJRVU1zUTBGQlF6dFJRVU42UXl4UFFVRlBPMGxCUlZRc1RVRkJUU3hYUVVGWExFZEJRVWNzVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUXpGRUxGZEJRVmNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTnNRaXhYUVVGWExFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVFTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJRMlFzVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEzaERMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzV1VGQldTeERRVUZETEZkQlFYRkNMRVZCUVVVc1QwRkJhVUlzUlVGQlJTeEhRVUZYTEVWQlFVVXNTMEZCWVR0SlFVTXZSaXhKUVVGSkxFZEJRVWNzUjBGQlJ5eFhRVUZYTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTFCUVUwc1IwRkJReXhEUVVGRExFTkJRVU03VVVGRGVrTXNUMEZCVHp0SlFVVlVMRTFCUVUwc1YwRkJWeXhIUVVGSExGZEJRVmNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTXhSQ3hYUVVGWExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZEYkVJc1YwRkJWeXhEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRM2hETEU5QlFVOHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOa0xFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU40UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxITkNRVUZ6UWl4RFFVTndReXhwUWtGQk5FTXNSVUZCUlN4UFFVRnBRanRKUVVVdlJDeFJRVUZSTEdsQ1FVRnBRaXhGUVVGRk8xRkJRM3BDTEV0QlFVc3NNRUpCUVRCQ0xFTkJRVU1zVTBGQlV6dFpRVU4yUXl4UFFVRlBMRU5CUVVNc1JVRkJXU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM0pHTzFsQlEwVXNUMEZCVHl4RFFVRkRMRVZCUVZrc1JVRkJSU3hGUVVGRk8yZENRVU4wUWl4WlFVRlpPMmRDUVVOYUxFMUJRVTBzUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkROMFVzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRM2hDTEVOQlFVTXNRMEZCUXp0TFFVTk1PMEZCUTBnc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3UkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaQ3dnUkdsemRHRnVZMlZCWjJkeVpXZGhkR2x2YmsxbGRHaHZaSE45SUdaeWIyMGdKeTR2ZEhsd1pYTW5PMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdhWE5PYVd3Z1BTQW9lRG9nWVc1NUtTQTlQaUI0SUQwOVBTQnVkV3hzSUh4OElIZ2dQVDA5SUhWdVpHVm1hVzVsWkR0Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHbHVjMlZ5ZEZOdFlXeHNaWElvWkdsemRHRnVZMlZ6UVhJNklHNTFiV0psY2x0ZExDQnBibVJsZUdWek9pQnVkVzFpWlhKYlhTd2diblZ0T2lCdWRXMWlaWElzSUdsdVpHVjRPaUJ1ZFcxaVpYSXBJSHRjYmlBZ2FXWWdLRzUxYlNBK0lHUnBjM1JoYm1ObGMwRnlXMlJwYzNSaGJtTmxjMEZ5TG14bGJtZDBhQzB4WFNsY2JpQWdJQ0J5WlhSMWNtNDdYRzVjYmlBZ1kyOXVjM1FnYm1WM1VHOXphWFJwYjI0Z1BTQmthWE4wWVc1alpYTkJjaTVtYVc1a1NXNWtaWGdvS0hZcElEMCtJRzUxYlNBOElIWXBPMXh1SUNCa2FYTjBZVzVqWlhOQmNpNXdiM0FvS1R0Y2JpQWdaR2x6ZEdGdVkyVnpRWEl1YzNCc2FXTmxLRzVsZDFCdmMybDBhVzl1TENBd0xDQnVkVzBwTzF4dUlDQnBibVJsZUdWekxuQnZjQ2dwTzF4dUlDQnBibVJsZUdWekxuTndiR2xqWlNodVpYZFFiM05wZEdsdmJpd2dNQ3dnYVc1a1pYZ3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FXNXpaWEowVEdGeVoyVnlLR1JwYzNSaGJtTmxjMEZ5T2lCdWRXMWlaWEpiWFN3Z2FXNWtaWGhsY3pvZ2JuVnRZbVZ5VzEwc0lHNTFiVG9nYm5WdFltVnlMQ0JwYm1SbGVEb2diblZ0WW1WeUtTQjdYRzRnSUdsbUlDaHVkVzBnUENCa2FYTjBZVzVqWlhOQmNsdGthWE4wWVc1alpYTkJjaTVzWlc1bmRHZ3RNVjBwWEc0Z0lDQWdjbVYwZFhKdU8xeHVYRzRnSUdOdmJuTjBJRzVsZDFCdmMybDBhVzl1SUQwZ1pHbHpkR0Z1WTJWelFYSXVabWx1WkVsdVpHVjRLQ2gyS1NBOVBpQnVkVzBnUGlCMktUdGNiaUFnWkdsemRHRnVZMlZ6UVhJdWNHOXdLQ2s3WEc0Z0lHUnBjM1JoYm1ObGMwRnlMbk53YkdsalpTaHVaWGRRYjNOcGRHbHZiaXdnTUN3Z2JuVnRLVHRjYmlBZ2FXNWtaWGhsY3k1d2IzQW9LVHRjYmlBZ2FXNWtaWGhsY3k1emNHeHBZMlVvYm1WM1VHOXphWFJwYjI0c0lEQXNJR2x1WkdWNEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFRm5aM0psWjJGMGFXOXVSblZ1WTNScGIyNG9YRzRnSUdGblozSmxaMkYwYVc5dVRXVjBhRzlrT2lCRWFYTjBZVzVqWlVGblozSmxaMkYwYVc5dVRXVjBhRzlrTENCM1pXbG5hSFJ6T2lCdWRXMWlaWEpiWFZ4dUtUb2dLSFpoYkhWbGN6b2diblZ0WW1WeVcxMHBJRDArSUc1MWJXSmxjaUI3WEc0Z0lITjNhWFJqYUNBb1lXZG5jbVZuWVhScGIyNU5aWFJvYjJRcElIdGNiaUFnSUNCallYTmxJRVJwYzNSaGJtTmxRV2RuY21WbllYUnBiMjVOWlhSb2IyUnpMazFCVGtoQlZGUkJUanBjYmlBZ0lDQWdJSEpsZEhWeWJpQW9kbk02SUc1MWJXSmxjbHRkS1NBOVBpQjJjeTV5WldSMVkyVW9LR0ZqWXl3Z2RtRnNMQ0JwWkhncElEMCtJR0ZqWXlBcklIWmhiQ0FxSUhkbGFXZG9kSE5iYVdSNFhTd2dNQ2s3WEc0Z0lDQWdaR1ZtWVhWc2REcGNiaUFnSUNBZ0lISmxkSFZ5YmlBb2RuTTZJRzUxYldKbGNsdGRLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDOHZJR1YxWTJ4cFpHVmhibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpkVzBnUFNCMmN5NXlaV1IxWTJVb0tHRmpZeXdnZG1Gc0xDQnBaSGdwSUQwK0lHRmpZeUFySUNoMllXd2dLaUIzWldsbmFIUnpXMmxrZUYwcElDb3FJRElzSURBcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1RXRjBhQzV6Y1hKMEtITjFiU2s3WEc0Z0lDQWdJQ0I5TzF4dUlDQjlYRzU5WEc0aVhYMD0iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbi8vIHRoZSBzdGFydHVwIGZ1bmN0aW9uXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnggPSAoKSA9PiB7XG5cdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuXHQvLyBUaGlzIGVudHJ5IG1vZHVsZSBkZXBlbmRzIG9uIG90aGVyIGxvYWRlZCBjaHVua3MgYW5kIGV4ZWN1dGlvbiBuZWVkIHRvIGJlIGRlbGF5ZWRcblx0dmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8odW5kZWZpbmVkLCBbNTkwXSwgKCkgPT4gKF9fd2VicGFja19yZXF1aXJlX18oMjM1NykpKVxuXHRfX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXy5PKF9fd2VicGFja19leHBvcnRzX18pO1xuXHRyZXR1cm4gX193ZWJwYWNrX2V4cG9ydHNfXztcbn07XG5cbiIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZiA9IHt9O1xuLy8gVGhpcyBmaWxlIGNvbnRhaW5zIG9ubHkgdGhlIGVudHJ5IGNodW5rLlxuLy8gVGhlIGNodW5rIGxvYWRpbmcgZnVuY3Rpb24gZm9yIGFkZGl0aW9uYWwgY2h1bmtzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmUgPSAoY2h1bmtJZCkgPT4ge1xuXHRyZXR1cm4gUHJvbWlzZS5hbGwoT2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5mKS5yZWR1Y2UoKHByb21pc2VzLCBrZXkpID0+IHtcblx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmZba2V5XShjaHVua0lkLCBwcm9taXNlcyk7XG5cdFx0cmV0dXJuIHByb21pc2VzO1xuXHR9LCBbXSkpO1xufTsiLCIvLyBUaGlzIGZ1bmN0aW9uIGFsbG93IHRvIHJlZmVyZW5jZSBhc3luYyBjaHVua3MgYW5kIHNpYmxpbmcgY2h1bmtzIGZvciB0aGUgZW50cnlwb2ludFxuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmpzXCI7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsInZhciBzY3JpcHRVcmw7XG5pZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5nLmltcG9ydFNjcmlwdHMpIHNjcmlwdFVybCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5sb2NhdGlvbiArIFwiXCI7XG52YXIgZG9jdW1lbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcuZG9jdW1lbnQ7XG5pZiAoIXNjcmlwdFVybCAmJiBkb2N1bWVudCkge1xuXHRpZiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdClcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYztcblx0aWYgKCFzY3JpcHRVcmwpIHtcblx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuXHRcdGlmKHNjcmlwdHMubGVuZ3RoKSB7XG5cdFx0XHR2YXIgaSA9IHNjcmlwdHMubGVuZ3RoIC0gMTtcblx0XHRcdHdoaWxlIChpID4gLTEgJiYgIXNjcmlwdFVybCkgc2NyaXB0VXJsID0gc2NyaXB0c1tpLS1dLnNyYztcblx0XHR9XG5cdH1cbn1cbi8vIFdoZW4gc3VwcG9ydGluZyBicm93c2VycyB3aGVyZSBhbiBhdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIHlvdSBtdXN0IHNwZWNpZnkgYW4gb3V0cHV0LnB1YmxpY1BhdGggbWFudWFsbHkgdmlhIGNvbmZpZ3VyYXRpb25cbi8vIG9yIHBhc3MgYW4gZW1wdHkgc3RyaW5nIChcIlwiKSBhbmQgc2V0IHRoZSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyB2YXJpYWJsZSBmcm9tIHlvdXIgY29kZSB0byB1c2UgeW91ciBvd24gbG9naWMuXG5pZiAoIXNjcmlwdFVybCkgdGhyb3cgbmV3IEVycm9yKFwiQXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXJcIik7XG5zY3JpcHRVcmwgPSBzY3JpcHRVcmwucmVwbGFjZSgvIy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcPy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcL1teXFwvXSskLywgXCIvXCIpO1xuX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gc2NyaXB0VXJsOyIsIl9fd2VicGFja19yZXF1aXJlX18uYiA9IHNlbGYubG9jYXRpb24gKyBcIlwiO1xuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLy8gXCIxXCIgbWVhbnMgXCJhbHJlYWR5IGxvYWRlZFwiXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQ3MDk6IDFcbn07XG5cbi8vIGltcG9ydFNjcmlwdHMgY2h1bmsgbG9hZGluZ1xudmFyIGluc3RhbGxDaHVuayA9IChkYXRhKSA9PiB7XG5cdHZhciBbY2h1bmtJZHMsIG1vcmVNb2R1bGVzLCBydW50aW1lXSA9IGRhdGE7XG5cdGZvcih2YXIgbW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcblx0XHR9XG5cdH1cblx0aWYocnVudGltZSkgcnVudGltZShfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblx0d2hpbGUoY2h1bmtJZHMubGVuZ3RoKVxuXHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkcy5wb3AoKV0gPSAxO1xuXHRwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbihkYXRhKTtcbn07XG5fX3dlYnBhY2tfcmVxdWlyZV9fLmYuaSA9IChjaHVua0lkLCBwcm9taXNlcykgPT4ge1xuXHQvLyBcIjFcIiBpcyB0aGUgc2lnbmFsIGZvciBcImFscmVhZHkgbG9hZGVkXCJcblx0aWYoIWluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuXHRcdGlmKHRydWUpIHsgLy8gYWxsIGNodW5rcyBoYXZlIEpTXG5cdFx0XHRpbXBvcnRTY3JpcHRzKF9fd2VicGFja19yZXF1aXJlX18ucCArIF9fd2VicGFja19yZXF1aXJlX18udShjaHVua0lkKSk7XG5cdFx0fVxuXHR9XG59O1xuXG52YXIgY2h1bmtMb2FkaW5nR2xvYmFsID0gc2VsZltcIndlYnBhY2tDaHVua2VkYVwiXSA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtlZGFcIl0gfHwgW107XG52YXIgcGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24gPSBjaHVua0xvYWRpbmdHbG9iYWwucHVzaC5iaW5kKGNodW5rTG9hZGluZ0dsb2JhbCk7XG5jaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IGluc3RhbGxDaHVuaztcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdCIsIi8vIHJ1biBzdGFydHVwXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18ueCgpO1xuIl0sIm5hbWVzIjpbImRlZmVycmVkIiwibmV4dCIsImFzeW5jIiwiYmlvTGF5b3V0IiwiY2x1c3RlciIsInNwYXJzZU9iamVjdCIsInRocmVzaG9sZCIsIm4iLCJsZW5ndGgiLCJpcyIsImpzIiwiaSIsImoiLCJhIiwiYiIsInB1c2giLCJlbWJlZFgiLCJGbG9hdDMyQXJyYXkiLCJmaWxsIiwibWFwIiwiTWF0aCIsInJhbmRvbSIsImVtYmVkWSIsInhWZWxvY2l0aWVzIiwieVZlbG9jaXRpZXMiLCJ0ZW1wZXJhdHVyZSIsImlkeCIsImR4IiwiZHkiLCJhYnMiLCJ2ZWNTaXplIiwic3FydCIsIm1pblgiLCJtaW5ZIiwibWF4WCIsIm1heFkiLCJtaW4iLCJtYXgiLCJyYW5nZVgiLCJyYW5nZVkiLCJnZXRMYXlvdXRFbWJlZGRpbmdzIiwiZGVmYXVsdE1DTE9wdGlvbnMiLCJleHBhbmRGYWN0b3IiLCJtYXhJdGVyYXRpb25zIiwiaW5mbGF0ZUZhY3RvciIsIm11bHRGYWN0b3IiLCJNQ0xTcGFyc2VSZWR1Y2VyIiwiX29wdGlvbnMiLCJjb25zdHJ1Y3RvciIsIm9wdHMiLCJ0aGlzIiwic3BhcnNlTWF0cml4IiwiblJvd3MiLCJ0b09iamVjdEZvcm0iLCJhZGRMb29wcyIsIm5vcm1hbGl6ZSIsImV4cGFuZCIsImluZmxhdGUiLCJjbHVzdGVycyIsImFzc2lnbkNsdXN0ZXJzIiwiY29ycmVjdENsdXN0ZXJzIiwiZW1iZWRkaW5ncyIsImxheW91dCIsImNsdXN0ZXJTaXplTWFwIiwic29ydGVkSW5kZXhlcyIsIk9iamVjdCIsImtleXMiLCJOdW1iZXIiLCJzb3J0IiwiY2x1c3Rlck1hcCIsImZvckVhY2giLCJjbHVzdGVySWR4IiwiY2x1c3Rlck51bSIsInNvcnRlZENsdXN0ZXJOYW1lcyIsInBlclJvdyIsInlPZmZzZXQiLCJjbHVzdGVyTmFtZSIsImNlaWwiLCJvZmZzZXRYIiwibWVyZ2VDbHVzdGVycyIsImlDbHVzdGVyIiwiakNsdXN0ZXIiLCJrIiwib3JkZXIiLCJmbG9vciIsImxvZzEwIiwibWluT3JkZXIiLCJwb3ciLCJBcnJheSIsInJvdW5kIiwiZGlzdGFuY2UiLCJyb3ciLCJzdW0iLCJleHBhbmRlZE9iamVjdCIsInZhbCIsImdldEV4cGFuZFZhbHVlIiwiY3VycmVudEluZGV4ZXMiLCJvdGhlckluZGV4ZXMiLCJpbmNsdWRlcyIsIm9ubWVzc2FnZSIsImV2ZW50IiwiZGF0YSIsIndlaWdodHMiLCJhZ2dyZWdhdGlvbk1ldGhvZCIsImRpc3RhbmNlRm5BcmdzIiwiZGlzdGFuY2VGbnMiLCJzcGFyc2UiLCJjYWxjTXVsdGlDb2x1bW4iLCJyZXMiLCJ0cmFuc2Zvcm0iLCJwb3N0TWVzc2FnZSIsImlzTmlsIiwieCIsImluc2VydFNtYWxsZXIiLCJkaXN0YW5jZXNBciIsImluZGV4ZXMiLCJudW0iLCJpbmRleCIsIm5ld1Bvc2l0aW9uIiwiZmluZEluZGV4IiwidiIsInBvcCIsInNwbGljZSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsInVuZGVmaW5lZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibSIsIl9fd2VicGFja19leHBvcnRzX18iLCJPIiwicmVzdWx0IiwiY2h1bmtJZHMiLCJmbiIsInByaW9yaXR5Iiwibm90RnVsZmlsbGVkIiwiSW5maW5pdHkiLCJmdWxmaWxsZWQiLCJldmVyeSIsImtleSIsInIiLCJkIiwiZGVmaW5pdGlvbiIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJmIiwiZSIsImNodW5rSWQiLCJQcm9taXNlIiwiYWxsIiwicmVkdWNlIiwicHJvbWlzZXMiLCJ1IiwiZyIsImdsb2JhbFRoaXMiLCJGdW5jdGlvbiIsIndpbmRvdyIsIm9iaiIsInByb3AiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzY3JpcHRVcmwiLCJpbXBvcnRTY3JpcHRzIiwibG9jYXRpb24iLCJkb2N1bWVudCIsImN1cnJlbnRTY3JpcHQiLCJzcmMiLCJzY3JpcHRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJFcnJvciIsInJlcGxhY2UiLCJwIiwic2VsZiIsImluc3RhbGxlZENodW5rcyIsImNodW5rTG9hZGluZ0dsb2JhbCIsInBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uIiwiYmluZCIsIm1vcmVNb2R1bGVzIiwicnVudGltZSIsInRoZW4iXSwic291cmNlUm9vdCI6IiJ9
|