Skip to content

Instantly share code, notes, and snippets.

@matchish
Created June 11, 2020 08:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matchish/96071beed656eda561763654c8c453eb to your computer and use it in GitHub Desktop.
Save matchish/96071beed656eda561763654c8c453eb to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
!function(A){var e={};function t(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return A[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}t.m=A,t.c=e,t.d=function(A,e,r){t.o(A,e)||Object.defineProperty(A,e,{enumerable:!0,get:r})},t.r=function(A){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})},t.t=function(A,e){if(1&e&&(A=t(A)),8&e)return A;if(4&e&&"object"==typeof A&&A&&A.__esModule)return A;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:A}),2&e&&"string"!=typeof A)for(var n in A)t.d(r,n,function(e){return A[e]}.bind(null,n));return r},t.n=function(A){var e=A&&A.__esModule?function(){return A.default}:function(){return A};return t.d(e,"a",e),e},t.o=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},t.p="",t(t.s=5)}([function(A,e,t){
/*!
* html2canvas 1.0.0-rc.5 <https://html2canvas.hertzen.com>
* Copyright (c) 2019 Niklas von Hertzen <https://hertzen.com>
* Released under MIT License
*/
A.exports=function(){"use strict";
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */var A=function(e,t){return(A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)e.hasOwnProperty(t)&&(A[t]=e[t])})(e,t)};function e(e,t){function r(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var t=function(){return(t=Object.assign||function(A){for(var e,t=1,r=arguments.length;t<r;t++)for(var n in e=arguments[t])Object.prototype.hasOwnProperty.call(e,n)&&(A[n]=e[n]);return A}).apply(this,arguments)};function r(A,e,t,r){return new(t||(t=Promise))((function(n,B){function o(A){try{s(r.next(A))}catch(A){B(A)}}function i(A){try{s(r.throw(A))}catch(A){B(A)}}function s(A){A.done?n(A.value):new t((function(e){e(A.value)})).then(o,i)}s((r=r.apply(A,e||[])).next())}))}function n(A,e){var t,r,n,B,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return B={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(B[Symbol.iterator]=function(){return this}),B;function i(B){return function(i){return function(B){if(t)throw new TypeError("Generator is already executing.");for(;o;)try{if(t=1,r&&(n=2&B[0]?r.return:B[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,B[1])).done)return n;switch(r=0,n&&(B=[2&B[0],n.value]),B[0]){case 0:case 1:n=B;break;case 4:return o.label++,{value:B[1],done:!1};case 5:o.label++,r=B[1],B=[0];continue;case 7:B=o.ops.pop(),o.trys.pop();continue;default:if(!((n=(n=o.trys).length>0&&n[n.length-1])||6!==B[0]&&2!==B[0])){o=0;continue}if(3===B[0]&&(!n||B[1]>n[0]&&B[1]<n[3])){o.label=B[1];break}if(6===B[0]&&o.label<n[1]){o.label=n[1],n=B;break}if(n&&o.label<n[2]){o.label=n[2],o.ops.push(B);break}n[2]&&o.ops.pop(),o.trys.pop();continue}B=e.call(A,o)}catch(A){B=[6,A],r=0}finally{t=n=0}if(5&B[0])throw B[1];return{value:B[0]?B[1]:void 0,done:!0}}([B,i])}}}for(var B=function(){function A(A,e,t,r){this.left=A,this.top=e,this.width=t,this.height=r}return A.prototype.add=function(e,t,r,n){return new A(this.left+e,this.top+t,this.width+r,this.height+n)},A.fromClientRect=function(e){return new A(e.left,e.top,e.width,e.height)},A}(),o=function(A){return B.fromClientRect(A.getBoundingClientRect())},i=function(A){for(var e=[],t=0,r=A.length;t<r;){var n=A.charCodeAt(t++);if(n>=55296&&n<=56319&&t<r){var B=A.charCodeAt(t++);56320==(64512&B)?e.push(((1023&n)<<10)+(1023&B)+65536):(e.push(n),t--)}else e.push(n)}return e},s=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,A);var t=A.length;if(!t)return"";for(var r=[],n=-1,B="";++n<t;){var o=A[n];o<=65535?r.push(o):(o-=65536,r.push(55296+(o>>10),o%1024+56320)),(n+1===t||r.length>16384)&&(B+=String.fromCharCode.apply(String,r),r.length=0)}return B},a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Q=0;Q<a.length;Q++)c[a.charCodeAt(Q)]=Q;var u,w=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},l=function(){function A(A,e,t,r,n,B){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=n,this.data=B}return A.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A<this.highStart)return e=2080+(A>>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),E=10,C=13,g=15,U=17,h=18,F=19,d=20,H=21,f=22,p=24,I=25,K=26,N=27,m=28,R=30,D=32,M=33,L=34,T=35,y=37,O=38,S=39,b=40,v=42,x=function(A){var e,t,r,n=function(A){var e,t,r,n,B,o=.75*A.length,i=A.length,s=0;"="===A[A.length-1]&&(o--,"="===A[A.length-2]&&o--);var a="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(o):new Array(o),Q=Array.isArray(a)?a:new Uint8Array(a);for(e=0;e<i;e+=4)t=c[A.charCodeAt(e)],r=c[A.charCodeAt(e+1)],n=c[A.charCodeAt(e+2)],B=c[A.charCodeAt(e+3)],Q[s++]=t<<2|r>>4,Q[s++]=(15&r)<<4|n>>2,Q[s++]=(3&n)<<6|63&B;return a}(A),B=Array.isArray(n)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=4)t.push(A[r+3]<<24|A[r+2]<<16|A[r+1]<<8|A[r]);return t}(n):new Uint32Array(n),o=Array.isArray(n)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=2)t.push(A[r+1]<<8|A[r]);return t}(n):new Uint16Array(n),i=w(o,12,B[4]/2),s=2===B[5]?w(o,(24+B[4])/2):(e=B,t=Math.ceil((24+B[4])/4),e.slice?e.slice(t,r):new Uint32Array(Array.prototype.slice.call(e,t,r)));return new l(B[0],B[1],B[2],B[3],i,s)}("KwAAAAAAAAAACA4AIDoAAPAfAAACAAAAAAAIABAAGABAAEgAUABYAF4AZgBeAGYAYABoAHAAeABeAGYAfACEAIAAiACQAJgAoACoAK0AtQC9AMUAXgBmAF4AZgBeAGYAzQDVAF4AZgDRANkA3gDmAOwA9AD8AAQBDAEUARoBIgGAAIgAJwEvATcBPwFFAU0BTAFUAVwBZAFsAXMBewGDATAAiwGTAZsBogGkAawBtAG8AcIBygHSAdoB4AHoAfAB+AH+AQYCDgIWAv4BHgImAi4CNgI+AkUCTQJTAlsCYwJrAnECeQKBAk0CiQKRApkCoQKoArACuALAAsQCzAIwANQC3ALkAjAA7AL0AvwCAQMJAxADGAMwACADJgMuAzYDPgOAAEYDSgNSA1IDUgNaA1oDYANiA2IDgACAAGoDgAByA3YDfgOAAIQDgACKA5IDmgOAAIAAogOqA4AAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAK8DtwOAAIAAvwPHA88D1wPfAyAD5wPsA/QD/AOAAIAABAQMBBIEgAAWBB4EJgQuBDMEIAM7BEEEXgBJBCADUQRZBGEEaQQwADAAcQQ+AXkEgQSJBJEEgACYBIAAoASoBK8EtwQwAL8ExQSAAIAAgACAAIAAgACgAM0EXgBeAF4AXgBeAF4AXgBeANUEXgDZBOEEXgDpBPEE+QQBBQkFEQUZBSEFKQUxBTUFPQVFBUwFVAVcBV4AYwVeAGsFcwV7BYMFiwWSBV4AmgWgBacFXgBeAF4AXgBeAKsFXgCyBbEFugW7BcIFwgXIBcIFwgXQBdQF3AXkBesF8wX7BQMGCwYTBhsGIwYrBjMGOwZeAD8GRwZNBl4AVAZbBl4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAGMGXgBqBnEGXgBeAF4AXgBeAF4AXgBeAF4AXgB5BoAG4wSGBo4GkwaAAIADHgR5AF4AXgBeAJsGgABGA4AAowarBrMGswagALsGwwbLBjAA0wbaBtoG3QbaBtoG2gbaBtoG2gblBusG8wb7BgMHCwcTBxsHCwcjBysHMAc1BzUHOgdCB9oGSgdSB1oHYAfaBloHaAfaBlIH2gbaBtoG2gbaBtoG2gbaBjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHbQdeAF4ANQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQd1B30HNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B4MH2gaKB68EgACAAIAAgACAAIAAgACAAI8HlwdeAJ8HpweAAIAArwe3B14AXgC/B8UHygcwANAH2AfgB4AA6AfwBz4B+AcACFwBCAgPCBcIogEYAR8IJwiAAC8INwg/CCADRwhPCFcIXwhnCEoDGgSAAIAAgABvCHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIhAiLCI4IMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAANQc1BzUHNQc1BzUHNQc1BzUHNQc1B54INQc1B6II2gaqCLIIugiAAIAAvgjGCIAAgACAAIAAgACAAIAAgACAAIAAywiHAYAA0wiAANkI3QjlCO0I9Aj8CIAAgACAAAIJCgkSCRoJIgknCTYHLwk3CZYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiAAIAAAAFAAXgBeAGAAcABeAHwAQACQAKAArQC9AJ4AXgBeAE0A3gBRAN4A7AD8AMwBGgEAAKcBNwEFAUwBXAF4QkhCmEKnArcCgAHHAsABz4LAAcABwAHAAd+C6ABoAG+C/4LAAcABwAHAAc+DF4MAAcAB54M3gweDV4Nng3eDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEeDqABVg6WDqABoQ6gAaABoAHXDvcONw/3DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DncPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB7cPPwlGCU4JMACAAIAAgABWCV4JYQmAAGkJcAl4CXwJgAkwADAAMAAwAIgJgACLCZMJgACZCZ8JowmrCYAAswkwAF4AXgB8AIAAuwkABMMJyQmAAM4JgADVCTAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAqwYWBNkIMAAwADAAMADdCeAJ6AnuCR4E9gkwAP4JBQoNCjAAMACAABUK0wiAAB0KJAosCjQKgAAwADwKQwqAAEsKvQmdCVMKWwowADAAgACAALcEMACAAGMKgABrCjAAMAAwADAAMAAwADAAMAAwADAAMAAeBDAAMAAwADAAMAAwADAAMAAwADAAMAAwAIkEPQFzCnoKiQSCCooKkAqJBJgKoAqkCokEGAGsCrQKvArBCjAAMADJCtEKFQHZCuEK/gHpCvEKMAAwADAAMACAAIwE+QowAIAAPwEBCzAAMAAwADAAMACAAAkLEQswAIAAPwEZCyELgAAOCCkLMAAxCzkLMAAwADAAMAAwADAAXgBeAEELMAAwADAAMAAwADAAMAAwAEkLTQtVC4AAXAtkC4AAiQkwADAAMAAwADAAMAAwADAAbAtxC3kLgAuFC4sLMAAwAJMLlwufCzAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAApwswADAAMACAAIAAgACvC4AAgACAAIAAgACAALcLMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvwuAAMcLgACAAIAAgACAAIAAyguAAIAAgACAAIAA0QswADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAANkLgACAAIAA4AswADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACJCR4E6AswADAAhwHwC4AA+AsADAgMEAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMACAAIAAGAwdDCUMMAAwAC0MNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQw1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHPQwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADUHNQc1BzUHNQc1BzUHNQc2BzAAMAA5DDUHNQc1BzUHNQc1BzUHNQc1BzUHNQdFDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAATQxSDFoMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAF4AXgBeAF4AXgBeAF4AYgxeAGoMXgBxDHkMfwxeAIUMXgBeAI0MMAAwADAAMAAwAF4AXgCVDJ0MMAAwADAAMABeAF4ApQxeAKsMswy7DF4Awgy9DMoMXgBeAF4AXgBeAF4AXgBeAF4AXgDRDNkMeQBqCeAM3Ax8AOYM7Az0DPgMXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgCgAAANoAAHDQ4NFg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAeDSYNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAC4NMABeAF4ANg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAD4NRg1ODVYNXg1mDTAAbQ0wADAAMAAwADAAMAAwADAA2gbaBtoG2gbaBtoG2gbaBnUNeg3CBYANwgWFDdoGjA3aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gaUDZwNpA2oDdoG2gawDbcNvw3HDdoG2gbPDdYN3A3fDeYN2gbsDfMN2gbaBvoN/g3aBgYODg7aBl4AXgBeABYOXgBeACUG2gYeDl4AJA5eACwO2w3aBtoGMQ45DtoG2gbaBtoGQQ7aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B1EO2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQdZDjUHNQc1BzUHNQc1B2EONQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHaA41BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B3AO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B2EO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBkkOeA6gAKAAoAAwADAAMAAwAKAAoACgAKAAoACgAKAAgA4wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAD//wQABAAEAAQABAAEAAQABAAEAA0AAwABAAEAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAKABMAFwAeABsAGgAeABcAFgASAB4AGwAYAA8AGAAcAEsASwBLAEsASwBLAEsASwBLAEsAGAAYAB4AHgAeABMAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAFgAbABIAHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYADQARAB4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkAFgAaABsAGwAbAB4AHQAdAB4ATwAXAB4ADQAeAB4AGgAbAE8ATwAOAFAAHQAdAB0ATwBPABcATwBPAE8AFgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwArAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAAQABAANAA0ASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAUAArACsAKwArACsAKwArACsABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAGgAaAFAAUABQAFAAUABMAB4AGwBQAB4AKwArACsABAAEAAQAKwBQAFAAUABQAFAAUAArACsAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUAArAFAAUAArACsABAArAAQABAAEAAQABAArACsAKwArAAQABAArACsABAAEAAQAKwArACsABAArACsAKwArACsAKwArAFAAUABQAFAAKwBQACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwAEAAQAUABQAFAABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQAKwArAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeABsAKwArACsAKwArACsAKwBQAAQABAAEAAQABAAEACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAKwArACsAKwArACsAKwArAAQABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwAEAFAAKwBQAFAAUABQAFAAUAArACsAKwBQAFAAUAArAFAAUABQAFAAKwArACsAUABQACsAUAArAFAAUAArACsAKwBQAFAAKwArACsAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQAKwArACsABAAEAAQAKwAEAAQABAAEACsAKwBQACsAKwArACsAKwArAAQAKwArACsAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAB4AHgAeAB4AHgAeABsAHgArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArAFAAUABQACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAB4AUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArACsAKwArACsAKwArAFAAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwArAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAKwBcAFwAKwBcACsAKwBcACsAKwArACsAKwArAFwAXABcAFwAKwBcAFwAXABcAFwAXABcACsAXABcAFwAKwBcACsAXAArACsAXABcACsAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgArACoAKgBcACsAKwBcAFwAXABcAFwAKwBcACsAKgAqACoAKgAqACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAFwAXABcAFwAUAAOAA4ADgAOAB4ADgAOAAkADgAOAA0ACQATABMAEwATABMACQAeABMAHgAeAB4ABAAEAB4AHgAeAB4AHgAeAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUAANAAQAHgAEAB4ABAAWABEAFgARAAQABABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAAQABAAEAAQABAANAAQABABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsADQANAB4AHgAeAB4AHgAeAAQAHgAeAB4AHgAeAB4AKwAeAB4ADgAOAA0ADgAeAB4AHgAeAB4ACQAJACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgAeAB4AHgBcAFwAXABcAFwAXAAqACoAKgAqAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAKgAqACoAKgAqACoAKgBcAFwAXAAqACoAKgAqAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAXAAqAEsASwBLAEsASwBLAEsASwBLAEsAKgAqACoAKgAqACoAUABQAFAAUABQAFAAKwBQACsAKwArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQACsAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwAEAAQABAAeAA0AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAEQArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAADQANAA0AUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAA0ADQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoADQANABUAXAANAB4ADQAbAFwAKgArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAB4AHgATABMADQANAA4AHgATABMAHgAEAAQABAAJACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAUABQAFAAUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwAeACsAKwArABMAEwBLAEsASwBLAEsASwBLAEsASwBLAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwBcAFwAXABcAFwAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcACsAKwArACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwAeAB4AXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsABABLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKgAqACoAKgAqACoAKgBcACoAKgAqACoAKgAqACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAUABQAFAAUABQAFAAUAArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4ADQANAA0ADQAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAHgAeAB4AHgBQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwANAA0ADQANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwBQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsABAAEAAQAHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAABABQAFAAUABQAAQABAAEAFAAUAAEAAQABAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAKwBQACsAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAKwArAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAKwAeAB4AHgAeAB4AHgAeAA4AHgArAA0ADQANAA0ADQANAA0ACQANAA0ADQAIAAQACwAEAAQADQAJAA0ADQAMAB0AHQAeABcAFwAWABcAFwAXABYAFwAdAB0AHgAeABQAFAAUAA0AAQABAAQABAAEAAQABAAJABoAGgAaABoAGgAaABoAGgAeABcAFwAdABUAFQAeAB4AHgAeAB4AHgAYABYAEQAVABUAFQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgANAB4ADQANAA0ADQAeAA0ADQANAAcAHgAeAB4AHgArAAQABAAEAAQABAAEAAQABAAEAAQAUABQACsAKwBPAFAAUABQAFAAUAAeAB4AHgAWABEATwBQAE8ATwBPAE8AUABQAFAAUABQAB4AHgAeABYAEQArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGgAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgBQABoAHgAdAB4AUAAeABoAHgAeAB4AHgAeAB4AHgAeAB4ATwAeAFAAGwAeAB4AUABQAFAAUABQAB4AHgAeAB0AHQAeAFAAHgBQAB4AUAAeAFAATwBQAFAAHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AUABQAFAAUABPAE8AUABQAFAAUABQAE8AUABQAE8AUABPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAE8ATwBPAE8ATwBPAE8ATwBPAE8AUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAATwAeAB4AKwArACsAKwAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB0AHQAeAB4AHgAdAB0AHgAeAB0AHgAeAB4AHQAeAB0AGwAbAB4AHQAeAB4AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB0AHgAdAB4AHQAdAB0AHQAdAB0AHgAdAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAdAB0AHQAdAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAlACUAHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB0AHQAeAB4AHgAeAB0AHQAdAB4AHgAdAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB0AHQAeAB4AHQAeAB4AHgAeAB0AHQAeAB4AHgAeACUAJQAdAB0AJQAeACUAJQAlACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHQAdAB0AHgAdACUAHQAdAB4AHQAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHQAdAB0AHQAlAB4AJQAlACUAHQAlACUAHQAdAB0AJQAlAB0AHQAlAB0AHQAlACUAJQAeAB0AHgAeAB4AHgAdAB0AJQAdAB0AHQAdAB0AHQAlACUAJQAlACUAHQAlACUAIAAlAB0AHQAlACUAJQAlACUAJQAlACUAHgAeAB4AJQAlACAAIAAgACAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeABcAFwAXABcAFwAXAB4AEwATACUAHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACUAJQBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwArACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAE8ATwBPAE8ATwBPAE8ATwAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeACsAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUAArACsAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQBQAFAAUABQACsAKwArACsAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAABAAEAAQAKwAEAAQAKwArACsAKwArAAQABAAEAAQAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsABAAEAAQAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsADQANAA0ADQANAA0ADQANAB4AKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAUABQAFAAUABQAA0ADQANAA0ADQANABQAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwANAA0ADQANAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAeAAQABAAEAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLACsADQArAB4AKwArAAQABAAEAAQAUABQAB4AUAArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwAEAAQABAAEAAQABAAEAAQABAAOAA0ADQATABMAHgAeAB4ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AUABQAFAAUAAEAAQAKwArAAQADQANAB4AUAArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXABcAA0ADQANACoASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUAArACsAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANACsADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEcARwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwAeAAQABAANAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAEAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUAArACsAUAArACsAUABQACsAKwBQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAeAB4ADQANAA0ADQAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAArAAQABAArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAEAAQABAAEAAQABAAEACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAFgAWAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAKwBQACsAKwArACsAKwArAFAAKwArACsAKwBQACsAUAArAFAAKwBQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQACsAUAArAFAAKwBQACsAUABQACsAUAArACsAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAUABQAFAAUAArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUAArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAlACUAJQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeACUAJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeACUAJQAlACUAJQAeACUAJQAlACUAJQAgACAAIAAlACUAIAAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIQAhACEAIQAhACUAJQAgACAAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAIAAlACUAJQAlACAAJQAgACAAIAAgACAAIAAgACAAIAAlACUAJQAgACUAJQAlACUAIAAgACAAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeACUAHgAlAB4AJQAlACUAJQAlACAAJQAlACUAJQAeACUAHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAIAAgACAAIAAgAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFwAXABcAFQAVABUAHgAeAB4AHgAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAlACAAIAAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsA"),G=[R,36],J=[1,2,3,5],Y=[E,8],k=[N,K],P=J.concat(Y),z=[O,S,b,L,T],V=[g,C],X=function(A,e,t,r){var n=r[t];if(Array.isArray(A)?-1!==A.indexOf(n):A===n)for(var B=t;B<=r.length;){if((s=r[++B])===e)return!0;if(s!==E)break}if(n===E)for(B=t;B>0;){var o=r[--B];if(Array.isArray(A)?-1!==A.indexOf(o):A===o)for(var i=t;i<=r.length;){var s;if((s=r[++i])===e)return!0;if(s!==E)break}if(o!==E)break}return!1},W=function(A,e){for(var t=A;t>=0;){var r=e[t];if(r!==E)return r;t--}return 0},j=function(A,e,t,r,n){if(0===t[r])return"×";var B=r-1;if(Array.isArray(n)&&!0===n[B])return"×";var o=B-1,i=B+1,s=e[B],a=o>=0?e[o]:0,c=e[i];if(2===s&&3===c)return"×";if(-1!==J.indexOf(s))return"!";if(-1!==J.indexOf(c))return"×";if(-1!==Y.indexOf(c))return"×";if(8===W(B,e))return"÷";if(11===x.get(A[B])&&(c===y||c===D||c===M))return"×";if(7===s||7===c)return"×";if(9===s)return"×";if(-1===[E,C,g].indexOf(s)&&9===c)return"×";if(-1!==[U,h,F,p,m].indexOf(c))return"×";if(W(B,e)===f)return"×";if(X(23,f,B,e))return"×";if(X([U,h],H,B,e))return"×";if(X(12,12,B,e))return"×";if(s===E)return"÷";if(23===s||23===c)return"×";if(16===c||16===s)return"÷";if(-1!==[C,g,H].indexOf(c)||14===s)return"×";if(36===a&&-1!==V.indexOf(s))return"×";if(s===m&&36===c)return"×";if(c===d&&-1!==G.concat(d,F,I,y,D,M).indexOf(s))return"×";if(-1!==G.indexOf(c)&&s===I||-1!==G.indexOf(s)&&c===I)return"×";if(s===N&&-1!==[y,D,M].indexOf(c)||-1!==[y,D,M].indexOf(s)&&c===K)return"×";if(-1!==G.indexOf(s)&&-1!==k.indexOf(c)||-1!==k.indexOf(s)&&-1!==G.indexOf(c))return"×";if(-1!==[N,K].indexOf(s)&&(c===I||-1!==[f,g].indexOf(c)&&e[i+1]===I)||-1!==[f,g].indexOf(s)&&c===I||s===I&&-1!==[I,m,p].indexOf(c))return"×";if(-1!==[I,m,p,U,h].indexOf(c))for(var Q=B;Q>=0;){if((u=e[Q])===I)return"×";if(-1===[m,p].indexOf(u))break;Q--}if(-1!==[N,K].indexOf(c))for(Q=-1!==[U,h].indexOf(s)?o:B;Q>=0;){var u;if((u=e[Q])===I)return"×";if(-1===[m,p].indexOf(u))break;Q--}if(O===s&&-1!==[O,S,L,T].indexOf(c)||-1!==[S,L].indexOf(s)&&-1!==[S,b].indexOf(c)||-1!==[b,T].indexOf(s)&&c===b)return"×";if(-1!==z.indexOf(s)&&-1!==[d,K].indexOf(c)||-1!==z.indexOf(c)&&s===N)return"×";if(-1!==G.indexOf(s)&&-1!==G.indexOf(c))return"×";if(s===p&&-1!==G.indexOf(c))return"×";if(-1!==G.concat(I).indexOf(s)&&c===f||-1!==G.concat(I).indexOf(c)&&s===h)return"×";if(41===s&&41===c){for(var w=t[B],l=1;w>0&&41===e[--w];)l++;if(l%2!=0)return"×"}return s===D&&c===M?"×":"÷"},Z=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=function(A,e){void 0===e&&(e="strict");var t=[],r=[],n=[];return A.forEach((function(A,B){var o=x.get(A);if(o>50?(n.push(!0),o-=50):n.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return r.push(B),t.push(16);if(4===o||11===o){if(0===B)return r.push(B),t.push(R);var i=t[B-1];return-1===P.indexOf(i)?(r.push(r[B-1]),t.push(i)):(r.push(B),t.push(R))}return r.push(B),31===o?t.push("strict"===e?H:y):o===v||29===o?t.push(R):43===o?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(y):t.push(R):void t.push(o)})),[r,t,n]}(A,e.lineBreak),r=t[0],n=t[1],B=t[2];return"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(n=n.map((function(A){return-1!==[I,R,v].indexOf(A)?y:A}))),[r,n,"keep-all"===e.wordBreak?B.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0]},q=function(){function A(A,e,t,r){this.codePoints=A,this.required="!"===e,this.start=t,this.end=r}return A.prototype.slice=function(){return s.apply(void 0,this.codePoints.slice(this.start,this.end))},A}();!function(A){A[A.STRING_TOKEN=0]="STRING_TOKEN",A[A.BAD_STRING_TOKEN=1]="BAD_STRING_TOKEN",A[A.LEFT_PARENTHESIS_TOKEN=2]="LEFT_PARENTHESIS_TOKEN",A[A.RIGHT_PARENTHESIS_TOKEN=3]="RIGHT_PARENTHESIS_TOKEN",A[A.COMMA_TOKEN=4]="COMMA_TOKEN",A[A.HASH_TOKEN=5]="HASH_TOKEN",A[A.DELIM_TOKEN=6]="DELIM_TOKEN",A[A.AT_KEYWORD_TOKEN=7]="AT_KEYWORD_TOKEN",A[A.PREFIX_MATCH_TOKEN=8]="PREFIX_MATCH_TOKEN",A[A.DASH_MATCH_TOKEN=9]="DASH_MATCH_TOKEN",A[A.INCLUDE_MATCH_TOKEN=10]="INCLUDE_MATCH_TOKEN",A[A.LEFT_CURLY_BRACKET_TOKEN=11]="LEFT_CURLY_BRACKET_TOKEN",A[A.RIGHT_CURLY_BRACKET_TOKEN=12]="RIGHT_CURLY_BRACKET_TOKEN",A[A.SUFFIX_MATCH_TOKEN=13]="SUFFIX_MATCH_TOKEN",A[A.SUBSTRING_MATCH_TOKEN=14]="SUBSTRING_MATCH_TOKEN",A[A.DIMENSION_TOKEN=15]="DIMENSION_TOKEN",A[A.PERCENTAGE_TOKEN=16]="PERCENTAGE_TOKEN",A[A.NUMBER_TOKEN=17]="NUMBER_TOKEN",A[A.FUNCTION=18]="FUNCTION",A[A.FUNCTION_TOKEN=19]="FUNCTION_TOKEN",A[A.IDENT_TOKEN=20]="IDENT_TOKEN",A[A.COLUMN_TOKEN=21]="COLUMN_TOKEN",A[A.URL_TOKEN=22]="URL_TOKEN",A[A.BAD_URL_TOKEN=23]="BAD_URL_TOKEN",A[A.CDC_TOKEN=24]="CDC_TOKEN",A[A.CDO_TOKEN=25]="CDO_TOKEN",A[A.COLON_TOKEN=26]="COLON_TOKEN",A[A.SEMICOLON_TOKEN=27]="SEMICOLON_TOKEN",A[A.LEFT_SQUARE_BRACKET_TOKEN=28]="LEFT_SQUARE_BRACKET_TOKEN",A[A.RIGHT_SQUARE_BRACKET_TOKEN=29]="RIGHT_SQUARE_BRACKET_TOKEN",A[A.UNICODE_RANGE_TOKEN=30]="UNICODE_RANGE_TOKEN",A[A.WHITESPACE_TOKEN=31]="WHITESPACE_TOKEN",A[A.EOF_TOKEN=32]="EOF_TOKEN"}(u||(u={}));var _=function(A){return A>=48&&A<=57},$=function(A){return _(A)||A>=65&&A<=70||A>=97&&A<=102},AA=function(A){return 10===A||9===A||32===A},eA=function(A){return function(A){return function(A){return A>=97&&A<=122}(A)||function(A){return A>=65&&A<=90}(A)}(A)||function(A){return A>=128}(A)||95===A},tA=function(A){return eA(A)||_(A)||45===A},rA=function(A){return A>=0&&A<=8||11===A||A>=14&&A<=31||127===A},nA=function(A,e){return 92===A&&10!==e},BA=function(A,e,t){return 45===A?eA(e)||nA(e,t):!!eA(A)||!(92!==A||!nA(A,e))},oA=function(A,e,t){return 43===A||45===A?!!_(e)||46===e&&_(t):_(46===A?e:A)},iA=function(A){var e=0,t=1;43!==A[e]&&45!==A[e]||(45===A[e]&&(t=-1),e++);for(var r=[];_(A[e]);)r.push(A[e++]);var n=r.length?parseInt(s.apply(void 0,r),10):0;46===A[e]&&e++;for(var B=[];_(A[e]);)B.push(A[e++]);var o=B.length,i=o?parseInt(s.apply(void 0,B),10):0;69!==A[e]&&101!==A[e]||e++;var a=1;43!==A[e]&&45!==A[e]||(45===A[e]&&(a=-1),e++);for(var c=[];_(A[e]);)c.push(A[e++]);var Q=c.length?parseInt(s.apply(void 0,c),10):0;return t*(n+i*Math.pow(10,-o))*Math.pow(10,a*Q)},sA={type:u.LEFT_PARENTHESIS_TOKEN},aA={type:u.RIGHT_PARENTHESIS_TOKEN},cA={type:u.COMMA_TOKEN},QA={type:u.SUFFIX_MATCH_TOKEN},uA={type:u.PREFIX_MATCH_TOKEN},wA={type:u.COLUMN_TOKEN},lA={type:u.DASH_MATCH_TOKEN},EA={type:u.INCLUDE_MATCH_TOKEN},CA={type:u.LEFT_CURLY_BRACKET_TOKEN},gA={type:u.RIGHT_CURLY_BRACKET_TOKEN},UA={type:u.SUBSTRING_MATCH_TOKEN},hA={type:u.BAD_URL_TOKEN},FA={type:u.BAD_STRING_TOKEN},dA={type:u.CDO_TOKEN},HA={type:u.CDC_TOKEN},fA={type:u.COLON_TOKEN},pA={type:u.SEMICOLON_TOKEN},IA={type:u.LEFT_SQUARE_BRACKET_TOKEN},KA={type:u.RIGHT_SQUARE_BRACKET_TOKEN},NA={type:u.WHITESPACE_TOKEN},mA={type:u.EOF_TOKEN},RA=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(i(A))},A.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==mA;)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case 34:return this.consumeStringToken(34);case 35:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),r=this.peekCodePoint(2);if(tA(e)||nA(t,r)){var n=BA(e,t,r)?2:1,B=this.consumeName();return{type:u.HASH_TOKEN,value:B,flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),QA;break;case 39:return this.consumeStringToken(39);case 40:return sA;case 41:return aA;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),UA;break;case 43:if(oA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 44:return cA;case 45:var o=A,i=this.peekCodePoint(0),a=this.peekCodePoint(1);if(oA(o,i,a))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(BA(o,i,a))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(45===i&&62===a)return this.consumeCodePoint(),this.consumeCodePoint(),HA;break;case 46:if(oA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var c=this.consumeCodePoint();if(42===c&&47===(c=this.consumeCodePoint()))return this.consumeToken();if(-1===c)return this.consumeToken()}break;case 58:return fA;case 59:return pA;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),dA;break;case 64:var Q=this.peekCodePoint(0),w=this.peekCodePoint(1),l=this.peekCodePoint(2);if(BA(Q,w,l))return B=this.consumeName(),{type:u.AT_KEYWORD_TOKEN,value:B};break;case 91:return IA;case 92:if(nA(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case 93:return KA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),uA;break;case 123:return CA;case 125:return gA;case 117:case 85:var E=this.peekCodePoint(0),C=this.peekCodePoint(1);return 43!==E||!$(C)&&63!==C||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),lA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),wA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),EA;break;case-1:return mA}return AA(A)?(this.consumeWhiteSpace(),NA):_(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):eA(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:u.DELIM_TOKEN,value:s(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();$(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t){var r=parseInt(s.apply(void 0,A.map((function(A){return 63===A?48:A}))),16),n=parseInt(s.apply(void 0,A.map((function(A){return 63===A?70:A}))),16);return{type:u.UNICODE_RANGE_TOKEN,start:r,end:n}}var B=parseInt(s.apply(void 0,A),16);if(45===this.peekCodePoint(0)&&$(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var o=[];$(e)&&o.length<6;)o.push(e),e=this.consumeCodePoint();return n=parseInt(s.apply(void 0,o),16),{type:u.UNICODE_RANGE_TOKEN,start:B,end:n}}return{type:u.UNICODE_RANGE_TOKEN,start:B,end:B}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:u.FUNCTION_TOKEN,value:A}):{type:u.IDENT_TOKEN,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:u.URL_TOKEN,value:""};var e=this.peekCodePoint(0);if(39===e||34===e){var t=this.consumeStringToken(this.consumeCodePoint());return t.type===u.STRING_TOKEN&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:u.URL_TOKEN,value:t.value}):(this.consumeBadUrlRemnants(),hA)}for(;;){var r=this.consumeCodePoint();if(-1===r||41===r)return{type:u.URL_TOKEN,value:s.apply(void 0,A)};if(AA(r))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:u.URL_TOKEN,value:s.apply(void 0,A)}):(this.consumeBadUrlRemnants(),hA);if(34===r||39===r||40===r||rA(r))return this.consumeBadUrlRemnants(),hA;if(92===r){if(!nA(r,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),hA;A.push(this.consumeEscapedCodePoint())}else A.push(r)}},A.prototype.consumeWhiteSpace=function(){for(;AA(this.peekCodePoint(0));)this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||-1===A)return;nA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){for(var e="";A>0;){var t=Math.min(6e4,A);e+=s.apply(void 0,this._value.splice(0,t)),A-=t}return this._value.shift(),e},A.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var r=this._value[t];if(-1===r||void 0===r||r===A)return e+=this.consumeStringSlice(t),{type:u.STRING_TOKEN,value:e};if(10===r)return this._value.splice(0,t),FA;if(92===r){var n=this._value[t+1];-1!==n&&void 0!==n&&(10===n?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):nA(r,n)&&(e+=this.consumeStringSlice(t),e+=s(this.consumeEscapedCodePoint()),t=-1))}t++}},A.prototype.consumeNumber=function(){var A=[],e=4,t=this.peekCodePoint(0);for(43!==t&&45!==t||A.push(this.consumeCodePoint());_(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var r=this.peekCodePoint(1);if(46===t&&_(r))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;_(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),r=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===t||101===t)&&((43===r||45===r)&&_(n)||_(r)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;_(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[iA(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],r=this.peekCodePoint(0),n=this.peekCodePoint(1),B=this.peekCodePoint(2);if(BA(r,n,B)){var o=this.consumeName();return{type:u.DIMENSION_TOKEN,number:e,flags:t,unit:o}}return 37===r?(this.consumeCodePoint(),{type:u.PERCENTAGE_TOKEN,number:e,flags:t}):{type:u.NUMBER_TOKEN,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if($(A)){for(var e=s(A);$(this.peekCodePoint(0))&&e.length<6;)e+=s(this.consumeCodePoint());AA(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||function(A){return A>=55296&&A<=57343}(t)||t>1114111?65533:t}return-1===A?65533:A},A.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(tA(e))A+=s(e);else{if(!nA(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=s(this.consumeEscapedCodePoint())}}},A}(),DA=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new RA;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){for(var A=this.consumeToken();A.type===u.WHITESPACE_TOKEN;)A=this.consumeToken();if(A.type===u.EOF_TOKEN)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(A.type===u.WHITESPACE_TOKEN);if(A.type===u.EOF_TOKEN)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(e.type===u.EOF_TOKEN)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case u.LEFT_CURLY_BRACKET_TOKEN:case u.LEFT_SQUARE_BRACKET_TOKEN:case u.LEFT_PARENTHESIS_TOKEN:return this.consumeSimpleBlock(A.type);case u.FUNCTION_TOKEN:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(t.type===u.EOF_TOKEN||xA(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:u.FUNCTION};;){var t=this.consumeToken();if(t.type===u.EOF_TOKEN||t.type===u.RIGHT_PARENTHESIS_TOKEN)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?mA:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),MA=function(A){return A.type===u.DIMENSION_TOKEN},LA=function(A){return A.type===u.NUMBER_TOKEN},TA=function(A){return A.type===u.IDENT_TOKEN},yA=function(A){return A.type===u.STRING_TOKEN},OA=function(A,e){return TA(A)&&A.value===e},SA=function(A){return A.type!==u.WHITESPACE_TOKEN},bA=function(A){return A.type!==u.WHITESPACE_TOKEN&&A.type!==u.COMMA_TOKEN},vA=function(A){var e=[],t=[];return A.forEach((function(A){if(A.type===u.COMMA_TOKEN){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}A.type!==u.WHITESPACE_TOKEN&&t.push(A)})),t.length&&e.push(t),e},xA=function(A,e){return e===u.LEFT_CURLY_BRACKET_TOKEN&&A.type===u.RIGHT_CURLY_BRACKET_TOKEN||e===u.LEFT_SQUARE_BRACKET_TOKEN&&A.type===u.RIGHT_SQUARE_BRACKET_TOKEN||e===u.LEFT_PARENTHESIS_TOKEN&&A.type===u.RIGHT_PARENTHESIS_TOKEN},GA=function(A){return A.type===u.NUMBER_TOKEN||A.type===u.DIMENSION_TOKEN},JA=function(A){return A.type===u.PERCENTAGE_TOKEN||GA(A)},YA=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},kA={type:u.NUMBER_TOKEN,number:0,flags:4},PA={type:u.PERCENTAGE_TOKEN,number:50,flags:4},zA={type:u.PERCENTAGE_TOKEN,number:100,flags:4},VA=function(A,e,t){var r=A[0],n=A[1];return[XA(r,e),XA(void 0!==n?n:r,t)]},XA=function(A,e){if(A.type===u.PERCENTAGE_TOKEN)return A.number/100*e;if(MA(A))switch(A.unit){case"rem":case"em":return 16*A.number;case"px":default:return A.number}return A.number},WA=function(A){if(A.type===u.DIMENSION_TOKEN)switch(A.unit){case"deg":return Math.PI*A.number/180;case"grad":return Math.PI/200*A.number;case"rad":return A.number;case"turn":return 2*Math.PI*A.number}throw new Error("Unsupported angle type")},jA=function(A){return A.type===u.DIMENSION_TOKEN&&("deg"===A.unit||"grad"===A.unit||"rad"===A.unit||"turn"===A.unit)},ZA=function(A){switch(A.filter(TA).map((function(A){return A.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[kA,kA];case"to top":case"bottom":return qA(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[kA,zA];case"to right":case"left":return qA(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[zA,zA];case"to bottom":case"top":return qA(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[zA,kA];case"to left":case"right":return qA(270)}return 0},qA=function(A){return Math.PI*A/180},_A=function(A){if(A.type===u.FUNCTION){var e=se[A.name];if(void 0===e)throw new Error('Attempting to parse an unsupported color function "'+A.name+'"');return e(A.values)}if(A.type===u.HASH_TOKEN){if(3===A.value.length){var t=A.value.substring(0,1),r=A.value.substring(1,2),n=A.value.substring(2,3);return ee(parseInt(t+t,16),parseInt(r+r,16),parseInt(n+n,16),1)}if(4===A.value.length){t=A.value.substring(0,1),r=A.value.substring(1,2),n=A.value.substring(2,3);var B=A.value.substring(3,4);return ee(parseInt(t+t,16),parseInt(r+r,16),parseInt(n+n,16),parseInt(B+B,16)/255)}if(6===A.value.length)return t=A.value.substring(0,2),r=A.value.substring(2,4),n=A.value.substring(4,6),ee(parseInt(t,16),parseInt(r,16),parseInt(n,16),1);if(8===A.value.length)return t=A.value.substring(0,2),r=A.value.substring(2,4),n=A.value.substring(4,6),B=A.value.substring(6,8),ee(parseInt(t,16),parseInt(r,16),parseInt(n,16),parseInt(B,16)/255)}if(A.type===u.IDENT_TOKEN){var o=ae[A.value.toUpperCase()];if(void 0!==o)return o}return ae.TRANSPARENT},$A=function(A){return 0==(255&A)},Ae=function(A){var e=255&A,t=255&A>>8,r=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+r+","+t+","+e/255+")":"rgb("+n+","+r+","+t+")"},ee=function(A,e,t,r){return(A<<24|e<<16|t<<8|Math.round(255*r)<<0)>>>0},te=function(A,e){if(A.type===u.NUMBER_TOKEN)return A.number;if(A.type===u.PERCENTAGE_TOKEN){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},re=function(A){var e=A.filter(bA);if(3===e.length){var t=e.map(te),r=t[0],n=t[1],B=t[2];return ee(r,n,B,1)}if(4===e.length){var o=e.map(te),i=(r=o[0],n=o[1],B=o[2],o[3]);return ee(r,n,B,i)}return 0};function ne(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var Be,oe,ie=function(A){var e=A.filter(bA),t=e[0],r=e[1],n=e[2],B=e[3],o=(t.type===u.NUMBER_TOKEN?qA(t.number):WA(t))/(2*Math.PI),i=JA(r)?r.number/100:0,s=JA(n)?n.number/100:0,a=void 0!==B&&JA(B)?XA(B,1):1;if(0===i)return ee(255*s,255*s,255*s,1);var c=s<=.5?s*(i+1):s+i-s*i,Q=2*s-c,w=ne(Q,c,o+1/3),l=ne(Q,c,o),E=ne(Q,c,o-1/3);return ee(255*w,255*l,255*E,a)},se={hsl:ie,hsla:ie,rgb:re,rgba:re},ae={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199};(function(A){A[A.VALUE=0]="VALUE",A[A.LIST=1]="LIST",A[A.IDENT_VALUE=2]="IDENT_VALUE",A[A.TYPE_VALUE=3]="TYPE_VALUE",A[A.TOKEN_VALUE=4]="TOKEN_VALUE"})(Be||(Be={})),function(A){A[A.BORDER_BOX=0]="BORDER_BOX",A[A.PADDING_BOX=1]="PADDING_BOX",A[A.CONTENT_BOX=2]="CONTENT_BOX"}(oe||(oe={}));var ce,Qe,ue,we={name:"background-clip",initialValue:"border-box",prefix:!1,type:Be.LIST,parse:function(A){return A.map((function(A){if(TA(A))switch(A.value){case"padding-box":return oe.PADDING_BOX;case"content-box":return oe.CONTENT_BOX}return oe.BORDER_BOX}))}},le={name:"background-color",initialValue:"transparent",prefix:!1,type:Be.TYPE_VALUE,format:"color"},Ee=function(A){var e=_A(A[0]),t=A[1];return t&&JA(t)?{color:e,stop:t}:{color:e,stop:null}},Ce=function(A,e){var t=A[0],r=A[A.length-1];null===t.stop&&(t.stop=kA),null===r.stop&&(r.stop=zA);for(var n=[],B=0,o=0;o<A.length;o++){var i=A[o].stop;if(null!==i){var s=XA(i,e);s>B?n.push(s):n.push(B),B=s}else n.push(null)}var a=null;for(o=0;o<n.length;o++){var c=n[o];if(null===c)null===a&&(a=o);else if(null!==a){for(var Q=o-a,u=(c-n[a-1])/(Q+1),w=1;w<=Q;w++)n[a+w-1]=u*w;a=null}}return A.map((function(A,t){return{color:A.color,stop:Math.max(Math.min(1,n[t]/e),0)}}))},ge=function(A,e,t){var r="number"==typeof A?A:function(A,e,t){var r=e/2,n=t/2,B=XA(A[0],e)-r,o=n-XA(A[1],t);return(Math.atan2(o,B)+2*Math.PI)%(2*Math.PI)}(A,e,t),n=Math.abs(e*Math.sin(r))+Math.abs(t*Math.cos(r)),B=e/2,o=t/2,i=n/2,s=Math.sin(r-Math.PI/2)*i,a=Math.cos(r-Math.PI/2)*i;return[n,B-a,B+a,o-s,o+s]},Ue=function(A,e){return Math.sqrt(A*A+e*e)},he=function(A,e,t,r,n){return[[0,0],[0,e],[A,0],[A,e]].reduce((function(A,e){var B=e[0],o=e[1],i=Ue(t-B,r-o);return(n?i<A.optimumDistance:i>A.optimumDistance)?{optimumCorner:e,optimumDistance:i}:A}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},Fe=function(A){var e=qA(180),t=[];return vA(A).forEach((function(A,r){if(0===r){var n=A[0];if(n.type===u.IDENT_TOKEN&&-1!==["top","left","right","bottom"].indexOf(n.value))return void(e=ZA(A));if(jA(n))return void(e=(WA(n)+qA(270))%qA(360))}var B=Ee(A);t.push(B)})),{angle:e,stops:t,type:ce.LINEAR_GRADIENT}},de=function(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]},He=function(A,e,t,r,n){var B="http://www.w3.org/2000/svg",o=document.createElementNS(B,"svg"),i=document.createElementNS(B,"foreignObject");return o.setAttributeNS(null,"width",A.toString()),o.setAttributeNS(null,"height",e.toString()),i.setAttributeNS(null,"width","100%"),i.setAttributeNS(null,"height","100%"),i.setAttributeNS(null,"x",t.toString()),i.setAttributeNS(null,"y",r.toString()),i.setAttributeNS(null,"externalResourcesRequired","true"),o.appendChild(i),i.appendChild(n),o},fe=function(A){return new Promise((function(e,t){var r=new Image;r.onload=function(){return e(r)},r.onerror=t,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},pe={get SUPPORT_RANGE_BOUNDS(){var A=function(A){if(A.createRange){var e=A.createRange();if(e.getBoundingClientRect){var t=A.createElement("boundtest");t.style.height="123px",t.style.display="block",A.body.appendChild(t),e.selectNode(t);var r=e.getBoundingClientRect(),n=Math.round(r.height);if(A.body.removeChild(t),123===n)return!0}}return!1}(document);return Object.defineProperty(pe,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),r=t.getContext("2d");if(!r)return!1;e.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{r.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(pe,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(A){var e=A.createElement("canvas");e.width=100,e.height=100;var t=e.getContext("2d");if(!t)return Promise.reject(!1);t.fillStyle="rgb(0, 255, 0)",t.fillRect(0,0,100,100);var r=new Image,n=e.toDataURL();r.src=n;var B=He(100,100,0,0,r);return t.fillStyle="red",t.fillRect(0,0,100,100),fe(B).then((function(e){t.drawImage(e,0,0);var r=t.getImageData(0,0,100,100).data;t.fillStyle="red",t.fillRect(0,0,100,100);var B=A.createElement("div");return B.style.backgroundImage="url("+n+")",B.style.height="100px",de(r)?fe(He(100,100,0,0,B)):Promise.reject(!1)})).then((function(A){return t.drawImage(A,0,0),de(t.getImageData(0,0,100,100).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(pe,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(pe,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(pe,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(pe,"SUPPORT_CORS_XHR",{value:A}),A}},Ie=function(){function A(A){var e=A.id,t=A.enabled;this.id=e,this.enabled=t,this.start=Date.now()}return A.prototype.debug=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.debug?console.debug.apply(console,[this.id,this.getTime()+"ms"].concat(A)):this.info.apply(this,A))},A.prototype.getTime=function(){return Date.now()-this.start},A.create=function(e){A.instances[e.id]=new A(e)},A.destroy=function(e){delete A.instances[e]},A.getInstance=function(e){var t=A.instances[e];if(void 0===t)throw new Error("No logger instance found with id "+e);return t},A.prototype.info=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&"undefined"!=typeof window&&window.console&&"function"==typeof console.info&&console.info.apply(console,[this.id,this.getTime()+"ms"].concat(A))},A.prototype.error=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.error?console.error.apply(console,[this.id,this.getTime()+"ms"].concat(A)):this.info.apply(this,A))},A.instances={},A}(),Ke=function(){function A(){}return A.create=function(e,t){return A._caches[e]=new Ne(e,t)},A.destroy=function(e){delete A._caches[e]},A.open=function(e){var t=A._caches[e];if(void 0!==t)return t;throw new Error('Cache with key "'+e+'" not found')},A.getOrigin=function(e){var t=A._link;return t?(t.href=e,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},A.isSameOrigin=function(e){return A.getOrigin(e)===A._origin},A.setContext=function(e){A._link=e.document.createElement("a"),A._origin=A.getOrigin(e.location.href)},A.getInstance=function(){var e=A._current;if(null===e)throw new Error("No cache instance attached");return e},A.attachInstance=function(e){A._current=e},A.detachInstance=function(){A._current=null},A._caches={},A._origin="about:blank",A._current=null,A}(),Ne=function(){function A(A,e){this.id=A,this._options=e,this._cache={}}return A.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)?e:ye(A)||Me(A)?(this._cache[A]=this.loadImage(A),e):e},A.prototype.match=function(A){return this._cache[A]},A.prototype.loadImage=function(A){return r(this,void 0,void 0,(function(){var e,t,r,B,o=this;return n(this,(function(n){switch(n.label){case 0:return e=Ke.isSameOrigin(A),t=!Le(A)&&!0===this._options.useCORS&&pe.SUPPORT_CORS_IMAGES&&!e,r=!Le(A)&&!e&&"string"==typeof this._options.proxy&&pe.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||Le(A)||r||t?(B=A,r?[4,this.proxy(B)]:[3,2]):[2];case 1:B=n.sent(),n.label=2;case 2:return Ie.getInstance(this.id).debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var r=new Image;r.onload=function(){return A(r)},r.onerror=e,(Te(B)||t)&&(r.crossOrigin="anonymous"),r.src=B,!0===r.complete&&setTimeout((function(){return A(r)}),500),o._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},A.prototype.has=function(A){return void 0!==this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var r=A.substring(0,256);return new Promise((function(n,B){var o=pe.SUPPORT_RESPONSE_TYPE?"blob":"text",i=new XMLHttpRequest;if(i.onload=function(){if(200===i.status)if("text"===o)n(i.response);else{var A=new FileReader;A.addEventListener("load",(function(){return n(A.result)}),!1),A.addEventListener("error",(function(A){return B(A)}),!1),A.readAsDataURL(i.response)}else B("Failed to proxy resource "+r+" with status code "+i.status)},i.onerror=B,i.open("GET",t+"?url="+encodeURIComponent(A)+"&responseType="+o),"text"!==o&&i instanceof XMLHttpRequest&&(i.responseType=o),e._options.imageTimeout){var s=e._options.imageTimeout;i.timeout=s,i.ontimeout=function(){return B("Timed out ("+s+"ms) proxying "+r)}}i.send()}))},A}(),me=/^data:image\/svg\+xml/i,Re=/^data:image\/.*;base64,/i,De=/^data:image\/.*/i,Me=function(A){return pe.SUPPORT_SVG_DRAWING||!Oe(A)},Le=function(A){return De.test(A)},Te=function(A){return Re.test(A)},ye=function(A){return"blob"===A.substr(0,4)},Oe=function(A){return"svg"===A.substr(-3).toLowerCase()||me.test(A)},Se=function(A){var e=Qe.CIRCLE,t=ue.FARTHEST_CORNER,r=[],n=[];return vA(A).forEach((function(A,B){var o=!0;if(0===B?o=A.reduce((function(A,e){if(TA(e))switch(e.value){case"center":return n.push(PA),!1;case"top":case"left":return n.push(kA),!1;case"right":case"bottom":return n.push(zA),!1}else if(JA(e)||GA(e))return n.push(e),!1;return A}),o):1===B&&(o=A.reduce((function(A,r){if(TA(r))switch(r.value){case"circle":return e=Qe.CIRCLE,!1;case"ellipse":return e=Qe.ELLIPSE,!1;case"contain":case"closest-side":return t=ue.CLOSEST_SIDE,!1;case"farthest-side":return t=ue.FARTHEST_SIDE,!1;case"closest-corner":return t=ue.CLOSEST_CORNER,!1;case"cover":case"farthest-corner":return t=ue.FARTHEST_CORNER,!1}else if(GA(r)||JA(r))return Array.isArray(t)||(t=[]),t.push(r),!1;return A}),o)),o){var i=Ee(A);r.push(i)}})),{size:t,shape:e,stops:r,position:n,type:ce.RADIAL_GRADIENT}};!function(A){A[A.URL=0]="URL",A[A.LINEAR_GRADIENT=1]="LINEAR_GRADIENT",A[A.RADIAL_GRADIENT=2]="RADIAL_GRADIENT"}(ce||(ce={})),function(A){A[A.CIRCLE=0]="CIRCLE",A[A.ELLIPSE=1]="ELLIPSE"}(Qe||(Qe={})),function(A){A[A.CLOSEST_SIDE=0]="CLOSEST_SIDE",A[A.FARTHEST_SIDE=1]="FARTHEST_SIDE",A[A.CLOSEST_CORNER=2]="CLOSEST_CORNER",A[A.FARTHEST_CORNER=3]="FARTHEST_CORNER"}(ue||(ue={}));var be,ve=function(A){if(A.type===u.URL_TOKEN){var e={url:A.value,type:ce.URL};return Ke.getInstance().addImage(A.value),e}if(A.type===u.FUNCTION){var t=xe[A.name];if(void 0===t)throw new Error('Attempting to parse an unsupported image function "'+A.name+'"');return t(A.values)}throw new Error("Unsupported image type")},xe={"linear-gradient":function(A){var e=qA(180),t=[];return vA(A).forEach((function(A,r){if(0===r){var n=A[0];if(n.type===u.IDENT_TOKEN&&"to"===n.value)return void(e=ZA(A));if(jA(n))return void(e=WA(n))}var B=Ee(A);t.push(B)})),{angle:e,stops:t,type:ce.LINEAR_GRADIENT}},"-moz-linear-gradient":Fe,"-ms-linear-gradient":Fe,"-o-linear-gradient":Fe,"-webkit-linear-gradient":Fe,"radial-gradient":function(A){var e=Qe.CIRCLE,t=ue.FARTHEST_CORNER,r=[],n=[];return vA(A).forEach((function(A,B){var o=!0;if(0===B){var i=!1;o=A.reduce((function(A,r){if(i)if(TA(r))switch(r.value){case"center":return n.push(PA),A;case"top":case"left":return n.push(kA),A;case"right":case"bottom":return n.push(zA),A}else(JA(r)||GA(r))&&n.push(r);else if(TA(r))switch(r.value){case"circle":return e=Qe.CIRCLE,!1;case"ellipse":return e=Qe.ELLIPSE,!1;case"at":return i=!0,!1;case"closest-side":return t=ue.CLOSEST_SIDE,!1;case"cover":case"farthest-side":return t=ue.FARTHEST_SIDE,!1;case"contain":case"closest-corner":return t=ue.CLOSEST_CORNER,!1;case"farthest-corner":return t=ue.FARTHEST_CORNER,!1}else if(GA(r)||JA(r))return Array.isArray(t)||(t=[]),t.push(r),!1;return A}),o)}if(o){var s=Ee(A);r.push(s)}})),{size:t,shape:e,stops:r,position:n,type:ce.RADIAL_GRADIENT}},"-moz-radial-gradient":Se,"-ms-radial-gradient":Se,"-o-radial-gradient":Se,"-webkit-radial-gradient":Se,"-webkit-gradient":function(A){var e=qA(180),t=[],r=ce.LINEAR_GRADIENT,n=Qe.CIRCLE,B=ue.FARTHEST_CORNER;return vA(A).forEach((function(A,e){var n=A[0];if(0===e){if(TA(n)&&"linear"===n.value)return void(r=ce.LINEAR_GRADIENT);if(TA(n)&&"radial"===n.value)return void(r=ce.RADIAL_GRADIENT)}if(n.type===u.FUNCTION)if("from"===n.name){var B=_A(n.values[0]);t.push({stop:kA,color:B})}else if("to"===n.name)B=_A(n.values[0]),t.push({stop:zA,color:B});else if("color-stop"===n.name){var o=n.values.filter(bA);if(2===o.length){B=_A(o[1]);var i=o[0];LA(i)&&t.push({stop:{type:u.PERCENTAGE_TOKEN,number:100*i.number,flags:i.flags},color:B})}}})),r===ce.LINEAR_GRADIENT?{angle:(e+qA(180))%qA(360),stops:t,type:r}:{size:B,shape:n,stops:t,position:[],type:r}}},Ge={name:"background-image",initialValue:"none",type:Be.LIST,prefix:!1,parse:function(A){if(0===A.length)return[];var e=A[0];return e.type===u.IDENT_TOKEN&&"none"===e.value?[]:A.filter((function(A){return bA(A)&&function(A){return A.type!==u.FUNCTION||xe[A.name]}(A)})).map(ve)}},Je={name:"background-origin",initialValue:"border-box",prefix:!1,type:Be.LIST,parse:function(A){return A.map((function(A){if(TA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Ye={name:"background-position",initialValue:"0% 0%",type:Be.LIST,prefix:!1,parse:function(A){return vA(A).map((function(A){return A.filter(JA)})).map(YA)}};!function(A){A[A.REPEAT=0]="REPEAT",A[A.NO_REPEAT=1]="NO_REPEAT",A[A.REPEAT_X=2]="REPEAT_X",A[A.REPEAT_Y=3]="REPEAT_Y"}(be||(be={}));var ke,Pe={name:"background-repeat",initialValue:"repeat",prefix:!1,type:Be.LIST,parse:function(A){return vA(A).map((function(A){return A.filter(TA).map((function(A){return A.value})).join(" ")})).map(ze)}},ze=function(A){switch(A){case"no-repeat":return be.NO_REPEAT;case"repeat-x":case"repeat no-repeat":return be.REPEAT_X;case"repeat-y":case"no-repeat repeat":return be.REPEAT_Y;case"repeat":default:return be.REPEAT}};!function(A){A.AUTO="auto",A.CONTAIN="contain",A.COVER="cover"}(ke||(ke={}));var Ve,Xe={name:"background-size",initialValue:"0",prefix:!1,type:Be.LIST,parse:function(A){return vA(A).map((function(A){return A.filter(We)}))}},We=function(A){return TA(A)||JA(A)},je=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:Be.TYPE_VALUE,format:"color"}},Ze=je("top"),qe=je("right"),_e=je("bottom"),$e=je("left"),At=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:Be.LIST,parse:function(A){return YA(A.filter(JA))}}},et=At("top-left"),tt=At("top-right"),rt=At("bottom-right"),nt=At("bottom-left");!function(A){A[A.NONE=0]="NONE",A[A.SOLID=1]="SOLID"}(Ve||(Ve={}));var Bt,ot=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"none":return Ve.NONE}return Ve.SOLID}}},it=ot("top"),st=ot("right"),at=ot("bottom"),ct=ot("left"),Qt=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:Be.VALUE,prefix:!1,parse:function(A){return MA(A)?A.number:0}}},ut=Qt("top"),wt=Qt("right"),lt=Qt("bottom"),Et=Qt("left"),Ct={name:"color",initialValue:"transparent",prefix:!1,type:Be.TYPE_VALUE,format:"color"},gt={name:"display",initialValue:"inline-block",prefix:!1,type:Be.LIST,parse:function(A){return A.filter(TA).reduce((function(A,e){return A|Ut(e.value)}),0)}},Ut=function(A){switch(A){case"block":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0};!function(A){A[A.NONE=0]="NONE",A[A.LEFT=1]="LEFT",A[A.RIGHT=2]="RIGHT",A[A.INLINE_START=3]="INLINE_START",A[A.INLINE_END=4]="INLINE_END"}(Bt||(Bt={}));var ht,Ft={name:"float",initialValue:"none",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"left":return Bt.LEFT;case"right":return Bt.RIGHT;case"inline-start":return Bt.INLINE_START;case"inline-end":return Bt.INLINE_END}return Bt.NONE}},dt={name:"letter-spacing",initialValue:"0",prefix:!1,type:Be.VALUE,parse:function(A){return A.type===u.IDENT_TOKEN&&"normal"===A.value?0:A.type===u.NUMBER_TOKEN||A.type===u.DIMENSION_TOKEN?A.number:0}};!function(A){A.NORMAL="normal",A.STRICT="strict"}(ht||(ht={}));var Ht,ft={name:"line-break",initialValue:"normal",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"strict":return ht.STRICT;case"normal":default:return ht.NORMAL}}},pt={name:"line-height",initialValue:"normal",prefix:!1,type:Be.TOKEN_VALUE},It={name:"list-style-image",initialValue:"none",type:Be.VALUE,prefix:!1,parse:function(A){return A.type===u.IDENT_TOKEN&&"none"===A.value?null:ve(A)}};!function(A){A[A.INSIDE=0]="INSIDE",A[A.OUTSIDE=1]="OUTSIDE"}(Ht||(Ht={}));var Kt,Nt={name:"list-style-position",initialValue:"outside",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"inside":return Ht.INSIDE;case"outside":default:return Ht.OUTSIDE}}};!function(A){A[A.NONE=-1]="NONE",A[A.DISC=0]="DISC",A[A.CIRCLE=1]="CIRCLE",A[A.SQUARE=2]="SQUARE",A[A.DECIMAL=3]="DECIMAL",A[A.CJK_DECIMAL=4]="CJK_DECIMAL",A[A.DECIMAL_LEADING_ZERO=5]="DECIMAL_LEADING_ZERO",A[A.LOWER_ROMAN=6]="LOWER_ROMAN",A[A.UPPER_ROMAN=7]="UPPER_ROMAN",A[A.LOWER_GREEK=8]="LOWER_GREEK",A[A.LOWER_ALPHA=9]="LOWER_ALPHA",A[A.UPPER_ALPHA=10]="UPPER_ALPHA",A[A.ARABIC_INDIC=11]="ARABIC_INDIC",A[A.ARMENIAN=12]="ARMENIAN",A[A.BENGALI=13]="BENGALI",A[A.CAMBODIAN=14]="CAMBODIAN",A[A.CJK_EARTHLY_BRANCH=15]="CJK_EARTHLY_BRANCH",A[A.CJK_HEAVENLY_STEM=16]="CJK_HEAVENLY_STEM",A[A.CJK_IDEOGRAPHIC=17]="CJK_IDEOGRAPHIC",A[A.DEVANAGARI=18]="DEVANAGARI",A[A.ETHIOPIC_NUMERIC=19]="ETHIOPIC_NUMERIC",A[A.GEORGIAN=20]="GEORGIAN",A[A.GUJARATI=21]="GUJARATI",A[A.GURMUKHI=22]="GURMUKHI",A[A.HEBREW=22]="HEBREW",A[A.HIRAGANA=23]="HIRAGANA",A[A.HIRAGANA_IROHA=24]="HIRAGANA_IROHA",A[A.JAPANESE_FORMAL=25]="JAPANESE_FORMAL",A[A.JAPANESE_INFORMAL=26]="JAPANESE_INFORMAL",A[A.KANNADA=27]="KANNADA",A[A.KATAKANA=28]="KATAKANA",A[A.KATAKANA_IROHA=29]="KATAKANA_IROHA",A[A.KHMER=30]="KHMER",A[A.KOREAN_HANGUL_FORMAL=31]="KOREAN_HANGUL_FORMAL",A[A.KOREAN_HANJA_FORMAL=32]="KOREAN_HANJA_FORMAL",A[A.KOREAN_HANJA_INFORMAL=33]="KOREAN_HANJA_INFORMAL",A[A.LAO=34]="LAO",A[A.LOWER_ARMENIAN=35]="LOWER_ARMENIAN",A[A.MALAYALAM=36]="MALAYALAM",A[A.MONGOLIAN=37]="MONGOLIAN",A[A.MYANMAR=38]="MYANMAR",A[A.ORIYA=39]="ORIYA",A[A.PERSIAN=40]="PERSIAN",A[A.SIMP_CHINESE_FORMAL=41]="SIMP_CHINESE_FORMAL",A[A.SIMP_CHINESE_INFORMAL=42]="SIMP_CHINESE_INFORMAL",A[A.TAMIL=43]="TAMIL",A[A.TELUGU=44]="TELUGU",A[A.THAI=45]="THAI",A[A.TIBETAN=46]="TIBETAN",A[A.TRAD_CHINESE_FORMAL=47]="TRAD_CHINESE_FORMAL",A[A.TRAD_CHINESE_INFORMAL=48]="TRAD_CHINESE_INFORMAL",A[A.UPPER_ARMENIAN=49]="UPPER_ARMENIAN",A[A.DISCLOSURE_OPEN=50]="DISCLOSURE_OPEN",A[A.DISCLOSURE_CLOSED=51]="DISCLOSURE_CLOSED"}(Kt||(Kt={}));var mt,Rt={name:"list-style-type",initialValue:"none",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"disc":return Kt.DISC;case"circle":return Kt.CIRCLE;case"square":return Kt.SQUARE;case"decimal":return Kt.DECIMAL;case"cjk-decimal":return Kt.CJK_DECIMAL;case"decimal-leading-zero":return Kt.DECIMAL_LEADING_ZERO;case"lower-roman":return Kt.LOWER_ROMAN;case"upper-roman":return Kt.UPPER_ROMAN;case"lower-greek":return Kt.LOWER_GREEK;case"lower-alpha":return Kt.LOWER_ALPHA;case"upper-alpha":return Kt.UPPER_ALPHA;case"arabic-indic":return Kt.ARABIC_INDIC;case"armenian":return Kt.ARMENIAN;case"bengali":return Kt.BENGALI;case"cambodian":return Kt.CAMBODIAN;case"cjk-earthly-branch":return Kt.CJK_EARTHLY_BRANCH;case"cjk-heavenly-stem":return Kt.CJK_HEAVENLY_STEM;case"cjk-ideographic":return Kt.CJK_IDEOGRAPHIC;case"devanagari":return Kt.DEVANAGARI;case"ethiopic-numeric":return Kt.ETHIOPIC_NUMERIC;case"georgian":return Kt.GEORGIAN;case"gujarati":return Kt.GUJARATI;case"gurmukhi":return Kt.GURMUKHI;case"hebrew":return Kt.HEBREW;case"hiragana":return Kt.HIRAGANA;case"hiragana-iroha":return Kt.HIRAGANA_IROHA;case"japanese-formal":return Kt.JAPANESE_FORMAL;case"japanese-informal":return Kt.JAPANESE_INFORMAL;case"kannada":return Kt.KANNADA;case"katakana":return Kt.KATAKANA;case"katakana-iroha":return Kt.KATAKANA_IROHA;case"khmer":return Kt.KHMER;case"korean-hangul-formal":return Kt.KOREAN_HANGUL_FORMAL;case"korean-hanja-formal":return Kt.KOREAN_HANJA_FORMAL;case"korean-hanja-informal":return Kt.KOREAN_HANJA_INFORMAL;case"lao":return Kt.LAO;case"lower-armenian":return Kt.LOWER_ARMENIAN;case"malayalam":return Kt.MALAYALAM;case"mongolian":return Kt.MONGOLIAN;case"myanmar":return Kt.MYANMAR;case"oriya":return Kt.ORIYA;case"persian":return Kt.PERSIAN;case"simp-chinese-formal":return Kt.SIMP_CHINESE_FORMAL;case"simp-chinese-informal":return Kt.SIMP_CHINESE_INFORMAL;case"tamil":return Kt.TAMIL;case"telugu":return Kt.TELUGU;case"thai":return Kt.THAI;case"tibetan":return Kt.TIBETAN;case"trad-chinese-formal":return Kt.TRAD_CHINESE_FORMAL;case"trad-chinese-informal":return Kt.TRAD_CHINESE_INFORMAL;case"upper-armenian":return Kt.UPPER_ARMENIAN;case"disclosure-open":return Kt.DISCLOSURE_OPEN;case"disclosure-closed":return Kt.DISCLOSURE_CLOSED;case"none":default:return Kt.NONE}}},Dt=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:Be.TOKEN_VALUE}},Mt=Dt("top"),Lt=Dt("right"),Tt=Dt("bottom"),yt=Dt("left");!function(A){A[A.VISIBLE=0]="VISIBLE",A[A.HIDDEN=1]="HIDDEN",A[A.SCROLL=2]="SCROLL",A[A.AUTO=3]="AUTO"}(mt||(mt={}));var Ot,St={name:"overflow",initialValue:"visible",prefix:!1,type:Be.LIST,parse:function(A){return A.filter(TA).map((function(A){switch(A.value){case"hidden":return mt.HIDDEN;case"scroll":return mt.SCROLL;case"auto":return mt.AUTO;case"visible":default:return mt.VISIBLE}}))}};!function(A){A.NORMAL="normal",A.BREAK_WORD="break-word"}(Ot||(Ot={}));var bt,vt={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"break-word":return Ot.BREAK_WORD;case"normal":default:return Ot.NORMAL}}},xt=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:Be.TYPE_VALUE,format:"length-percentage"}},Gt=xt("top"),Jt=xt("right"),Yt=xt("bottom"),kt=xt("left");!function(A){A[A.LEFT=0]="LEFT",A[A.CENTER=1]="CENTER",A[A.RIGHT=2]="RIGHT"}(bt||(bt={}));var Pt,zt={name:"text-align",initialValue:"left",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"right":return bt.RIGHT;case"center":case"justify":return bt.CENTER;case"left":default:return bt.LEFT}}};!function(A){A[A.STATIC=0]="STATIC",A[A.RELATIVE=1]="RELATIVE",A[A.ABSOLUTE=2]="ABSOLUTE",A[A.FIXED=3]="FIXED",A[A.STICKY=4]="STICKY"}(Pt||(Pt={}));var Vt,Xt={name:"position",initialValue:"static",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"relative":return Pt.RELATIVE;case"absolute":return Pt.ABSOLUTE;case"fixed":return Pt.FIXED;case"sticky":return Pt.STICKY}return Pt.STATIC}},Wt={name:"text-shadow",initialValue:"none",type:Be.LIST,prefix:!1,parse:function(A){return 1===A.length&&OA(A[0],"none")?[]:vA(A).map((function(A){for(var e={color:ae.TRANSPARENT,offsetX:kA,offsetY:kA,blur:kA},t=0,r=0;r<A.length;r++){var n=A[r];GA(n)?(0===t?e.offsetX=n:1===t?e.offsetY=n:e.blur=n,t++):e.color=_A(n)}return e}))}};!function(A){A[A.NONE=0]="NONE",A[A.LOWERCASE=1]="LOWERCASE",A[A.UPPERCASE=2]="UPPERCASE",A[A.CAPITALIZE=3]="CAPITALIZE"}(Vt||(Vt={}));var jt,Zt={name:"text-transform",initialValue:"none",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"uppercase":return Vt.UPPERCASE;case"lowercase":return Vt.LOWERCASE;case"capitalize":return Vt.CAPITALIZE}return Vt.NONE}},qt={name:"transform",initialValue:"none",prefix:!0,type:Be.VALUE,parse:function(A){if(A.type===u.IDENT_TOKEN&&"none"===A.value)return null;if(A.type===u.FUNCTION){var e=_t[A.name];if(void 0===e)throw new Error('Attempting to parse an unsupported transform function "'+A.name+'"');return e(A.values)}return null}},_t={matrix:function(A){var e=A.filter((function(A){return A.type===u.NUMBER_TOKEN})).map((function(A){return A.number}));return 6===e.length?e:null},matrix3d:function(A){var e=A.filter((function(A){return A.type===u.NUMBER_TOKEN})).map((function(A){return A.number})),t=e[0],r=e[1],n=(e[2],e[3],e[4]),B=e[5],o=(e[6],e[7],e[8],e[9],e[10],e[11],e[12]),i=e[13];return e[14],e[15],16===e.length?[t,r,n,B,o,i]:null}},$t={type:u.PERCENTAGE_TOKEN,number:50,flags:4},Ar=[$t,$t],er={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:Be.LIST,parse:function(A){var e=A.filter(JA);return 2!==e.length?Ar:[e[0],e[1]]}};!function(A){A[A.VISIBLE=0]="VISIBLE",A[A.HIDDEN=1]="HIDDEN",A[A.COLLAPSE=2]="COLLAPSE"}(jt||(jt={}));var tr,rr={name:"visible",initialValue:"none",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"hidden":return jt.HIDDEN;case"collapse":return jt.COLLAPSE;case"visible":default:return jt.VISIBLE}}};!function(A){A.NORMAL="normal",A.BREAK_ALL="break-all",A.KEEP_ALL="keep-all"}(tr||(tr={}));var nr,Br={name:"word-break",initialValue:"normal",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"break-all":return tr.BREAK_ALL;case"keep-all":return tr.KEEP_ALL;case"normal":default:return tr.NORMAL}}},or={name:"z-index",initialValue:"auto",prefix:!1,type:Be.VALUE,parse:function(A){if(A.type===u.IDENT_TOKEN)return{auto:!0,order:0};if(LA(A))return{auto:!1,order:A.number};throw new Error("Invalid z-index number parsed")}},ir={name:"opacity",initialValue:"1",type:Be.VALUE,prefix:!1,parse:function(A){return LA(A)?A.number:1}},sr={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:Be.TYPE_VALUE,format:"color"},ar={name:"text-decoration-line",initialValue:"none",prefix:!1,type:Be.LIST,parse:function(A){return A.filter(TA).map((function(A){switch(A.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0})).filter((function(A){return 0!==A}))}},cr={name:"font-family",initialValue:"",prefix:!1,type:Be.LIST,parse:function(A){return A.filter(Qr).map((function(A){return A.value}))}},Qr=function(A){return A.type===u.STRING_TOKEN||A.type===u.IDENT_TOKEN},ur={name:"font-size",initialValue:"0",prefix:!1,type:Be.TYPE_VALUE,format:"length"},wr={name:"font-weight",initialValue:"normal",type:Be.VALUE,prefix:!1,parse:function(A){if(LA(A))return A.number;if(TA(A))switch(A.value){case"bold":return 700;case"normal":default:return 400}return 400}},lr={name:"font-variant",initialValue:"none",type:Be.LIST,prefix:!1,parse:function(A){return A.filter(TA).map((function(A){return A.value}))}};!function(A){A.NORMAL="normal",A.ITALIC="italic",A.OBLIQUE="oblique"}(nr||(nr={}));var Er,Cr={name:"font-style",initialValue:"normal",prefix:!1,type:Be.IDENT_VALUE,parse:function(A){switch(A){case"oblique":return nr.OBLIQUE;case"italic":return nr.ITALIC;case"normal":default:return nr.NORMAL}}},gr=function(A,e){return 0!=(A&e)},Ur={name:"content",initialValue:"none",type:Be.LIST,prefix:!1,parse:function(A){if(0===A.length)return[];var e=A[0];return e.type===u.IDENT_TOKEN&&"none"===e.value?[]:A}},hr={name:"counter-increment",initialValue:"none",prefix:!0,type:Be.LIST,parse:function(A){if(0===A.length)return null;var e=A[0];if(e.type===u.IDENT_TOKEN&&"none"===e.value)return null;for(var t=[],r=A.filter(SA),n=0;n<r.length;n++){var B=r[n],o=r[n+1];if(B.type===u.IDENT_TOKEN){var i=o&&LA(o)?o.number:1;t.push({counter:B.value,increment:i})}}return t}},Fr={name:"counter-reset",initialValue:"none",prefix:!0,type:Be.LIST,parse:function(A){if(0===A.length)return[];for(var e=[],t=A.filter(SA),r=0;r<t.length;r++){var n=t[r],B=t[r+1];if(TA(n)&&"none"!==n.value){var o=B&&LA(B)?B.number:0;e.push({counter:n.value,reset:o})}}return e}},dr={name:"quotes",initialValue:"none",prefix:!0,type:Be.LIST,parse:function(A){if(0===A.length)return null;var e=A[0];if(e.type===u.IDENT_TOKEN&&"none"===e.value)return null;var t=[],r=A.filter(yA);if(r.length%2!=0)return null;for(var n=0;n<r.length;n+=2){var B=r[n].value,o=r[n+1].value;t.push({open:B,close:o})}return t}},Hr=function(A,e,t){if(!A)return"";var r=A[Math.min(e,A.length-1)];return r?t?r.open:r.close:""},fr={name:"box-shadow",initialValue:"none",type:Be.LIST,prefix:!1,parse:function(A){return 1===A.length&&OA(A[0],"none")?[]:vA(A).map((function(A){for(var e={color:255,offsetX:kA,offsetY:kA,blur:kA,spread:kA,inset:!1},t=0,r=0;r<A.length;r++){var n=A[r];OA(n,"inset")?e.inset=!0:GA(n)?(0===t?e.offsetX=n:1===t?e.offsetY=n:2===t?e.blur=n:e.spread=n,t++):e.color=_A(n)}return e}))}},pr=function(){function A(A){this.backgroundClip=Nr(we,A.backgroundClip),this.backgroundColor=Nr(le,A.backgroundColor),this.backgroundImage=Nr(Ge,A.backgroundImage),this.backgroundOrigin=Nr(Je,A.backgroundOrigin),this.backgroundPosition=Nr(Ye,A.backgroundPosition),this.backgroundRepeat=Nr(Pe,A.backgroundRepeat),this.backgroundSize=Nr(Xe,A.backgroundSize),this.borderTopColor=Nr(Ze,A.borderTopColor),this.borderRightColor=Nr(qe,A.borderRightColor),this.borderBottomColor=Nr(_e,A.borderBottomColor),this.borderLeftColor=Nr($e,A.borderLeftColor),this.borderTopLeftRadius=Nr(et,A.borderTopLeftRadius),this.borderTopRightRadius=Nr(tt,A.borderTopRightRadius),this.borderBottomRightRadius=Nr(rt,A.borderBottomRightRadius),this.borderBottomLeftRadius=Nr(nt,A.borderBottomLeftRadius),this.borderTopStyle=Nr(it,A.borderTopStyle),this.borderRightStyle=Nr(st,A.borderRightStyle),this.borderBottomStyle=Nr(at,A.borderBottomStyle),this.borderLeftStyle=Nr(ct,A.borderLeftStyle),this.borderTopWidth=Nr(ut,A.borderTopWidth),this.borderRightWidth=Nr(wt,A.borderRightWidth),this.borderBottomWidth=Nr(lt,A.borderBottomWidth),this.borderLeftWidth=Nr(Et,A.borderLeftWidth),this.boxShadow=Nr(fr,A.boxShadow),this.color=Nr(Ct,A.color),this.display=Nr(gt,A.display),this.float=Nr(Ft,A.cssFloat),this.fontFamily=Nr(cr,A.fontFamily),this.fontSize=Nr(ur,A.fontSize),this.fontStyle=Nr(Cr,A.fontStyle),this.fontVariant=Nr(lr,A.fontVariant),this.fontWeight=Nr(wr,A.fontWeight),this.letterSpacing=Nr(dt,A.letterSpacing),this.lineBreak=Nr(ft,A.lineBreak),this.lineHeight=Nr(pt,A.lineHeight),this.listStyleImage=Nr(It,A.listStyleImage),this.listStylePosition=Nr(Nt,A.listStylePosition),this.listStyleType=Nr(Rt,A.listStyleType),this.marginTop=Nr(Mt,A.marginTop),this.marginRight=Nr(Lt,A.marginRight),this.marginBottom=Nr(Tt,A.marginBottom),this.marginLeft=Nr(yt,A.marginLeft),this.opacity=Nr(ir,A.opacity);var e=Nr(St,A.overflow);this.overflowX=e[0],this.overflowY=e[e.length>1?1:0],this.overflowWrap=Nr(vt,A.overflowWrap),this.paddingTop=Nr(Gt,A.paddingTop),this.paddingRight=Nr(Jt,A.paddingRight),this.paddingBottom=Nr(Yt,A.paddingBottom),this.paddingLeft=Nr(kt,A.paddingLeft),this.position=Nr(Xt,A.position),this.textAlign=Nr(zt,A.textAlign),this.textDecorationColor=Nr(sr,A.textDecorationColor||A.color),this.textDecorationLine=Nr(ar,A.textDecorationLine),this.textShadow=Nr(Wt,A.textShadow),this.textTransform=Nr(Zt,A.textTransform),this.transform=Nr(qt,A.transform),this.transformOrigin=Nr(er,A.transformOrigin),this.visibility=Nr(rr,A.visibility),this.wordBreak=Nr(Br,A.wordBreak),this.zIndex=Nr(or,A.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&this.visibility===jt.VISIBLE},A.prototype.isTransparent=function(){return $A(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return this.position!==Pt.STATIC},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return this.float!==Bt.NONE},A.prototype.isInlineLevel=function(){return gr(this.display,4)||gr(this.display,33554432)||gr(this.display,268435456)||gr(this.display,536870912)||gr(this.display,67108864)||gr(this.display,134217728)},A}(),Ir=function(A){this.content=Nr(Ur,A.content),this.quotes=Nr(dr,A.quotes)},Kr=function(A){this.counterIncrement=Nr(hr,A.counterIncrement),this.counterReset=Nr(Fr,A.counterReset)},Nr=function(A,e){var t=new RA,r=null!=e?e.toString():A.initialValue;t.write(r);var n=new DA(t.read());switch(A.type){case Be.IDENT_VALUE:var B=n.parseComponentValue();return A.parse(TA(B)?B.value:A.initialValue);case Be.VALUE:return A.parse(n.parseComponentValue());case Be.LIST:return A.parse(n.parseComponentValues());case Be.TOKEN_VALUE:return n.parseComponentValue();case Be.TYPE_VALUE:switch(A.format){case"angle":return WA(n.parseComponentValue());case"color":return _A(n.parseComponentValue());case"image":return ve(n.parseComponentValue());case"length":var o=n.parseComponentValue();return GA(o)?o:kA;case"length-percentage":var i=n.parseComponentValue();return JA(i)?i:kA}}throw new Error("Attempting to parse unsupported css format type "+A.format)},mr=function(A){this.styles=new pr(window.getComputedStyle(A,null)),this.textNodes=[],this.elements=[],null!==this.styles.transform&&Bn(A)&&(A.style.transform="none"),this.bounds=o(A),this.flags=0},Rr=function(A,e){this.text=A,this.bounds=e},Dr=function(A){var e=A.ownerDocument;if(e){var t=e.createElement("html2canvaswrapper");t.appendChild(A.cloneNode(!0));var r=A.parentNode;if(r){r.replaceChild(t,A);var n=o(t);return t.firstChild&&r.replaceChild(t.firstChild,t),n}}return new B(0,0,0,0)},Mr=function(A,e,t){var r=A.ownerDocument;if(!r)throw new Error("Node has no owner document");var n=r.createRange();return n.setStart(A,e),n.setEnd(A,e+t),B.fromClientRect(n.getBoundingClientRect())},Lr=function(A,e){return 0!==e.letterSpacing?i(A).map((function(A){return s(A)})):Tr(A,e)},Tr=function(A,e){for(var t,r=function(A,e){var t=i(A),r=Z(t,e),n=r[0],B=r[1],o=r[2],s=t.length,a=0,c=0;return{next:function(){if(c>=s)return{done:!0,value:null};for(var A="×";c<s&&"×"===(A=j(t,B,n,++c,o)););if("×"!==A||c===s){var e=new q(t,A,a,c);return a=c,{value:e,done:!1}}return{done:!0,value:null}}}}(A,{lineBreak:e.lineBreak,wordBreak:e.overflowWrap===Ot.BREAK_WORD?"break-word":e.wordBreak}),n=[];!(t=r.next()).done;)t.value&&n.push(t.value.slice());return n},yr=function(A,e){this.text=Or(A.data,e.textTransform),this.textBounds=function(A,e,t){var r=Lr(A,e),n=[],B=0;return r.forEach((function(A){if(e.textDecorationLine.length||A.trim().length>0)if(pe.SUPPORT_RANGE_BOUNDS)n.push(new Rr(A,Mr(t,B,A.length)));else{var r=t.splitText(A.length);n.push(new Rr(A,Dr(t))),t=r}else pe.SUPPORT_RANGE_BOUNDS||(t=t.splitText(A.length));B+=A.length})),n}(this.text,e,A)},Or=function(A,e){switch(e){case Vt.LOWERCASE:return A.toLowerCase();case Vt.CAPITALIZE:return A.replace(Sr,br);case Vt.UPPERCASE:return A.toUpperCase();default:return A}},Sr=/(^|\s|:|-|\(|\))([a-z])/g,br=function(A,e,t){return A.length>0?e+t.toUpperCase():A},vr=function(A){function t(e){var t=A.call(this,e)||this;return t.src=e.currentSrc||e.src,t.intrinsicWidth=e.naturalWidth,t.intrinsicHeight=e.naturalHeight,Ke.getInstance().addImage(t.src),t}return e(t,A),t}(mr),xr=function(A){function t(e){var t=A.call(this,e)||this;return t.canvas=e,t.intrinsicWidth=e.width,t.intrinsicHeight=e.height,t}return e(t,A),t}(mr),Gr=function(A){function t(e){var t=A.call(this,e)||this,r=new XMLSerializer;return t.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(e)),t.intrinsicWidth=e.width.baseVal.value,t.intrinsicHeight=e.height.baseVal.value,Ke.getInstance().addImage(t.svg),t}return e(t,A),t}(mr),Jr=function(A){function t(e){var t=A.call(this,e)||this;return t.value=e.value,t}return e(t,A),t}(mr),Yr=function(A){function t(e){var t=A.call(this,e)||this;return t.start=e.start,t.reversed="boolean"==typeof e.reversed&&!0===e.reversed,t}return e(t,A),t}(mr),kr=[{type:u.DIMENSION_TOKEN,flags:0,unit:"px",number:3}],Pr=[{type:u.PERCENTAGE_TOKEN,flags:0,number:50}],zr="password",Vr=function(A){function t(e){var t,r,n,o=A.call(this,e)||this;switch(o.type=e.type.toLowerCase(),o.checked=e.checked,o.value=0===(r=(t=e).type===zr?new Array(t.value.length+1).join("•"):t.value).length?t.placeholder||"":r,"checkbox"!==o.type&&"radio"!==o.type||(o.styles.backgroundColor=3739148031,o.styles.borderTopColor=o.styles.borderRightColor=o.styles.borderBottomColor=o.styles.borderLeftColor=2779096575,o.styles.borderTopWidth=o.styles.borderRightWidth=o.styles.borderBottomWidth=o.styles.borderLeftWidth=1,o.styles.borderTopStyle=o.styles.borderRightStyle=o.styles.borderBottomStyle=o.styles.borderLeftStyle=Ve.SOLID,o.styles.backgroundClip=[oe.BORDER_BOX],o.styles.backgroundOrigin=[0],o.bounds=(n=o.bounds).width>n.height?new B(n.left+(n.width-n.height)/2,n.top,n.height,n.height):n.width<n.height?new B(n.left,n.top+(n.height-n.width)/2,n.width,n.width):n),o.type){case"checkbox":o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=kr;break;case"radio":o.styles.borderTopRightRadius=o.styles.borderTopLeftRadius=o.styles.borderBottomRightRadius=o.styles.borderBottomLeftRadius=Pr}return o}return e(t,A),t}(mr),Xr=function(A){function t(e){var t=A.call(this,e)||this,r=e.options[e.selectedIndex||0];return t.value=r&&r.text||"",t}return e(t,A),t}(mr),Wr=function(A){function t(e){var t=A.call(this,e)||this;return t.value=e.value,t}return e(t,A),t}(mr),jr=function(A){return _A(DA.create(A).parseComponentValue())},Zr=function(A){function t(e){var t=A.call(this,e)||this;t.src=e.src,t.width=parseInt(e.width,10)||0,t.height=parseInt(e.height,10)||0,t.backgroundColor=t.styles.backgroundColor;try{if(e.contentWindow&&e.contentWindow.document&&e.contentWindow.document.documentElement){t.tree=An(e.contentWindow.document.documentElement);var r=e.contentWindow.document.documentElement?jr(getComputedStyle(e.contentWindow.document.documentElement).backgroundColor):ae.TRANSPARENT,n=e.contentWindow.document.body?jr(getComputedStyle(e.contentWindow.document.body).backgroundColor):ae.TRANSPARENT;t.backgroundColor=$A(r)?$A(n)?t.styles.backgroundColor:n:r}}catch(A){}return t}return e(t,A),t}(mr),qr=["OL","UL","MENU"],_r=function(A,e,t){for(var r=A.firstChild,n=void 0;r;r=n)if(n=r.nextSibling,rn(r)&&r.data.trim().length>0)e.textNodes.push(new yr(r,e.styles));else if(nn(r)){var B=$r(r);B.styles.isVisible()&&(en(r,B,t)?B.flags|=4:tn(B.styles)&&(B.flags|=2),-1!==qr.indexOf(r.tagName)&&(B.flags|=8),e.elements.push(B),gn(r)||cn(r)||Un(r)||_r(r,B,t))}},$r=function(A){return wn(A)?new vr(A):un(A)?new xr(A):cn(A)?new Gr(A):on(A)?new Jr(A):sn(A)?new Yr(A):an(A)?new Vr(A):Un(A)?new Xr(A):gn(A)?new Wr(A):ln(A)?new Zr(A):new mr(A)},An=function(A){var e=$r(A);return e.flags|=4,_r(A,e,e),e},en=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Qn(A)&&t.styles.isTransparent()},tn=function(A){return A.isPositioned()||A.isFloating()},rn=function(A){return A.nodeType===Node.TEXT_NODE},nn=function(A){return A.nodeType===Node.ELEMENT_NODE},Bn=function(A){return void 0!==A.style},on=function(A){return"LI"===A.tagName},sn=function(A){return"OL"===A.tagName},an=function(A){return"INPUT"===A.tagName},cn=function(A){return"svg"===A.tagName},Qn=function(A){return"BODY"===A.tagName},un=function(A){return"CANVAS"===A.tagName},wn=function(A){return"IMG"===A.tagName},ln=function(A){return"IFRAME"===A.tagName},En=function(A){return"STYLE"===A.tagName},Cn=function(A){return"SCRIPT"===A.tagName},gn=function(A){return"TEXTAREA"===A.tagName},Un=function(A){return"SELECT"===A.tagName},hn=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){var e=this.counters[A];return e||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,r=A.counterReset,n=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(n=!1,t[Math.max(0,t.length-1)]+=A.increment)}));var B=[];return n&&r.forEach((function(A){var t=e.counters[A.counter];B.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),B},A}(),Fn={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},dn={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Hn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},fn={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},pn=function(A,e,t,r,n,B){return A<e||A>t?Rn(A,n,B.length>0):r.integers.reduce((function(e,t,n){for(;A>=t;)A-=t,e+=r.values[n];return e}),"")+B},In=function(A,e,t,r){var n="";do{t||A--,n=r(A)+n,A/=e}while(A*e>=e);return n},Kn=function(A,e,t,r,n){var B=t-e+1;return(A<0?"-":"")+(In(Math.abs(A),B,r,(function(A){return s(Math.floor(A%B)+e)}))+n)},Nn=function(A,e,t){void 0===t&&(t=". ");var r=e.length;return In(Math.abs(A),r,!1,(function(A){return e[Math.floor(A%r)]}))+t},mn=function(A,e,t,r,n,B){if(A<-9999||A>9999)return Rn(A,Kt.CJK_DECIMAL,n.length>0);var o=Math.abs(A),i=n;if(0===o)return e[0]+i;for(var s=0;o>0&&s<=4;s++){var a=o%10;0===a&&gr(B,1)&&""!==i?i=e[a]+i:a>1||1===a&&0===s||1===a&&1===s&&gr(B,2)||1===a&&1===s&&gr(B,4)&&A>100||1===a&&s>1&&gr(B,8)?i=e[a]+(s>0?t[s-1]:"")+i:1===a&&s>0&&(i=t[s-1]+i),o=Math.floor(o/10)}return(A<0?r:"")+i},Rn=function(A,e,t){var r=t?". ":"",n=t?"、":"",B=t?", ":"",o=t?" ":"";switch(e){case Kt.DISC:return"•"+o;case Kt.CIRCLE:return"◦"+o;case Kt.SQUARE:return"◾"+o;case Kt.DECIMAL_LEADING_ZERO:var i=Kn(A,48,57,!0,r);return i.length<4?"0"+i:i;case Kt.CJK_DECIMAL:return Nn(A,"〇一二三四五六七八九",n);case Kt.LOWER_ROMAN:return pn(A,1,3999,Fn,Kt.DECIMAL,r).toLowerCase();case Kt.UPPER_ROMAN:return pn(A,1,3999,Fn,Kt.DECIMAL,r);case Kt.LOWER_GREEK:return Kn(A,945,969,!1,r);case Kt.LOWER_ALPHA:return Kn(A,97,122,!1,r);case Kt.UPPER_ALPHA:return Kn(A,65,90,!1,r);case Kt.ARABIC_INDIC:return Kn(A,1632,1641,!0,r);case Kt.ARMENIAN:case Kt.UPPER_ARMENIAN:return pn(A,1,9999,dn,Kt.DECIMAL,r);case Kt.LOWER_ARMENIAN:return pn(A,1,9999,dn,Kt.DECIMAL,r).toLowerCase();case Kt.BENGALI:return Kn(A,2534,2543,!0,r);case Kt.CAMBODIAN:case Kt.KHMER:return Kn(A,6112,6121,!0,r);case Kt.CJK_EARTHLY_BRANCH:return Nn(A,"子丑寅卯辰巳午未申酉戌亥",n);case Kt.CJK_HEAVENLY_STEM:return Nn(A,"甲乙丙丁戊己庚辛壬癸",n);case Kt.CJK_IDEOGRAPHIC:case Kt.TRAD_CHINESE_INFORMAL:return mn(A,"零一二三四五六七八九","十百千萬","負",n,14);case Kt.TRAD_CHINESE_FORMAL:return mn(A,"零壹貳參肆伍陸柒捌玖","拾佰仟萬","負",n,15);case Kt.SIMP_CHINESE_INFORMAL:return mn(A,"零一二三四五六七八九","十百千萬","负",n,14);case Kt.SIMP_CHINESE_FORMAL:return mn(A,"零壹贰叁肆伍陆柒捌玖","拾佰仟萬","负",n,15);case Kt.JAPANESE_INFORMAL:return mn(A,"〇一二三四五六七八九","十百千万","マイナス",n,0);case Kt.JAPANESE_FORMAL:return mn(A,"零壱弐参四伍六七八九","拾百千万","マイナス",n,7);case Kt.KOREAN_HANGUL_FORMAL:return mn(A,"영일이삼사오육칠팔구","십백천만","마이너스",B,7);case Kt.KOREAN_HANJA_INFORMAL:return mn(A,"零一二三四五六七八九","十百千萬","마이너스",B,0);case Kt.KOREAN_HANJA_FORMAL:return mn(A,"零壹貳參四五六七八九","拾百千","마이너스",B,7);case Kt.DEVANAGARI:return Kn(A,2406,2415,!0,r);case Kt.GEORGIAN:return pn(A,1,19999,fn,Kt.DECIMAL,r);case Kt.GUJARATI:return Kn(A,2790,2799,!0,r);case Kt.GURMUKHI:return Kn(A,2662,2671,!0,r);case Kt.HEBREW:return pn(A,1,10999,Hn,Kt.DECIMAL,r);case Kt.HIRAGANA:return Nn(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case Kt.HIRAGANA_IROHA:return Nn(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case Kt.KANNADA:return Kn(A,3302,3311,!0,r);case Kt.KATAKANA:return Nn(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case Kt.KATAKANA_IROHA:return Nn(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case Kt.LAO:return Kn(A,3792,3801,!0,r);case Kt.MONGOLIAN:return Kn(A,6160,6169,!0,r);case Kt.MYANMAR:return Kn(A,4160,4169,!0,r);case Kt.ORIYA:return Kn(A,2918,2927,!0,r);case Kt.PERSIAN:return Kn(A,1776,1785,!0,r);case Kt.TAMIL:return Kn(A,3046,3055,!0,r);case Kt.TELUGU:return Kn(A,3174,3183,!0,r);case Kt.THAI:return Kn(A,3664,3673,!0,r);case Kt.TIBETAN:return Kn(A,3872,3881,!0,r);case Kt.DECIMAL:default:return Kn(A,48,57,!0,r)}},Dn=function(){function A(A,e){if(this.options=e,this.scrolledElements=[],this.referenceElement=A,this.counters=new hn,this.quoteDepth=0,!A.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(A.ownerDocument.documentElement)}return A.prototype.toIFrame=function(A,e){var t=this,B=Ln(A,e);if(!B.contentWindow)return Promise.reject("Unable to find iframe window");var o=A.defaultView.pageXOffset,i=A.defaultView.pageYOffset,s=B.contentWindow,a=s.document,c=Tn(B).then((function(){return r(t,void 0,void 0,(function(){var A;return n(this,(function(t){switch(t.label){case 0:return this.scrolledElements.forEach(bn),s&&(s.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||s.scrollY===e.top&&s.scrollX===e.left||(a.documentElement.style.top=-e.top+"px",a.documentElement.style.left=-e.left+"px",a.documentElement.style.position="absolute")),A=this.options.onclone,void 0===this.clonedReferenceElement?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:t.sent(),t.label=2;case 2:return"function"==typeof A?[2,Promise.resolve().then((function(){return A(a)})).then((function(){return B}))]:[2,B]}}))}))}));return a.open(),a.write(On(document.doctype)+"<html></html>"),Sn(this.referenceElement.ownerDocument,o,i),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),c},A.prototype.createElementClone=function(A){return un(A)?this.createCanvasClone(A):En(A)?this.createStyleClone(A):A.cloneNode(!1)},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A}),""),r=A.cloneNode(!1);return r.textContent=t,r}}catch(A){if(Ie.getInstance(this.options.id).error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){if(this.options.inlineImages&&A.ownerDocument){var e=A.ownerDocument.createElement("img");try{return e.src=A.toDataURL(),e}catch(A){Ie.getInstance(this.options.id).info("Unable to clone canvas contents, canvas is tainted")}}var t=A.cloneNode(!1);try{t.width=A.width,t.height=A.height;var r=A.getContext("2d"),n=t.getContext("2d");return n&&(r?n.putImageData(r.getImageData(0,0,A.width,A.height),0,0):n.drawImage(A,0,0)),t}catch(A){}return t},A.prototype.cloneNode=function(A){if(rn(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var e=A.ownerDocument.defaultView;if(Bn(A)&&e){var t=this.createElementClone(A),r=e.getComputedStyle(A),n=e.getComputedStyle(A,":before"),B=e.getComputedStyle(A,":after");this.referenceElement===A&&(this.clonedReferenceElement=t),Qn(t)&&Gn(t);for(var o=this.counters.parse(new Kr(r)),i=this.resolvePseudoContent(A,t,n,Er.BEFORE),s=A.firstChild;s;s=s.nextSibling)nn(s)&&(Cn(s)||s.hasAttribute("data-html2canvas-ignore")||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(s))||this.options.copyStyles&&nn(s)&&En(s)||t.appendChild(this.cloneNode(s));i&&t.insertBefore(i,t.firstChild);var a=this.resolvePseudoContent(A,t,B,Er.AFTER);return a&&t.appendChild(a),this.counters.pop(o),r&&this.options.copyStyles&&!ln(A)&&yn(r,t),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([t,A.scrollLeft,A.scrollTop]),(gn(A)||Un(A))&&(gn(t)||Un(t))&&(t.value=A.value),t}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,r){var n=this;if(t){var B=t.content,o=e.ownerDocument;if(o&&B&&"none"!==B&&"-moz-alt-content"!==B&&"none"!==t.display){this.counters.parse(new Kr(t));var i=new Ir(t),s=o.createElement("html2canvaspseudoelement");return yn(t,s),i.content.forEach((function(e){if(e.type===u.STRING_TOKEN)s.appendChild(o.createTextNode(e.value));else if(e.type===u.URL_TOKEN){var t=o.createElement("img");t.src=e.value,t.style.opacity="1",s.appendChild(t)}else if(e.type===u.FUNCTION){if("attr"===e.name){var r=e.values.filter(TA);r.length&&s.appendChild(o.createTextNode(A.getAttribute(r[0].value)||""))}else if("counter"===e.name){var B=e.values.filter(bA),a=B[0],c=B[1];if(a&&TA(a)){var Q=n.counters.getCounterValue(a.value),w=c&&TA(c)?Rt.parse(c.value):Kt.DECIMAL;s.appendChild(o.createTextNode(Rn(Q,w,!1)))}}else if("counters"===e.name){var l=e.values.filter(bA),E=(a=l[0],l[1]);if(c=l[2],a&&TA(a)){var C=n.counters.getCounterValues(a.value),g=c&&TA(c)?Rt.parse(c.value):Kt.DECIMAL,U=E&&E.type===u.STRING_TOKEN?E.value:"",h=C.map((function(A){return Rn(A,g,!1)})).join(U);s.appendChild(o.createTextNode(h))}}}else if(e.type===u.IDENT_TOKEN)switch(e.value){case"open-quote":s.appendChild(o.createTextNode(Hr(i.quotes,n.quoteDepth++,!0)));break;case"close-quote":s.appendChild(o.createTextNode(Hr(i.quotes,--n.quoteDepth,!1)));break;default:s.appendChild(o.createTextNode(e.value))}})),s.className=vn+" "+xn,e.className+=r===Er.BEFORE?" "+vn:" "+xn,s}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();!function(A){A[A.BEFORE=0]="BEFORE",A[A.AFTER=1]="AFTER"}(Er||(Er={}));var Mn,Ln=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute("data-html2canvas-ignore","true"),A.body.appendChild(t),t},Tn=function(A){return new Promise((function(e,t){var r=A.contentWindow;if(!r)return t("No window assigned for iframe");var n=r.document;r.onload=A.onload=n.onreadystatechange=function(){r.onload=A.onload=n.onreadystatechange=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),e(A))}),50)}}))},yn=function(A,e){for(var t=A.length-1;t>=0;t--){var r=A.item(t);"content"!==r&&e.style.setProperty(r,A.getPropertyValue(r))}return e},On=function(A){var e="";return A&&(e+="<!DOCTYPE ",A.name&&(e+=A.name),A.internalSubset&&(e+=A.internalSubset),A.publicId&&(e+='"'+A.publicId+'"'),A.systemId&&(e+='"'+A.systemId+'"'),e+=">"),e},Sn=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},bn=function(A){var e=A[0],t=A[1],r=A[2];e.scrollLeft=t,e.scrollTop=r},vn="___html2canvas___pseudoelement_before",xn="___html2canvas___pseudoelement_after",Gn=function(A){Jn(A,"."+vn+':before{\n content: "" !important;\n display: none !important;\n}\n .'+xn+':after{\n content: "" !important;\n display: none !important;\n}')},Jn=function(A,e){var t=A.ownerDocument;if(t){var r=t.createElement("style");r.textContent=e,A.appendChild(r)}};!function(A){A[A.VECTOR=0]="VECTOR",A[A.BEZIER_CURVE=1]="BEZIER_CURVE"}(Mn||(Mn={}));var Yn,kn=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},Pn=function(){function A(A,e){this.type=Mn.VECTOR,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),zn=function(A,e,t){return new Pn(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Vn=function(){function A(A,e,t,r){this.type=Mn.BEZIER_CURVE,this.start=A,this.startControl=e,this.endControl=t,this.end=r}return A.prototype.subdivide=function(e,t){var r=zn(this.start,this.startControl,e),n=zn(this.startControl,this.endControl,e),B=zn(this.endControl,this.end,e),o=zn(r,n,e),i=zn(n,B,e),s=zn(o,i,e);return t?new A(this.start,r,o,s):new A(s,i,B,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),Xn=function(A){return A.type===Mn.BEZIER_CURVE},Wn=function(A){var e=A.styles,t=A.bounds,r=VA(e.borderTopLeftRadius,t.width,t.height),n=r[0],B=r[1],o=VA(e.borderTopRightRadius,t.width,t.height),i=o[0],s=o[1],a=VA(e.borderBottomRightRadius,t.width,t.height),c=a[0],Q=a[1],u=VA(e.borderBottomLeftRadius,t.width,t.height),w=u[0],l=u[1],E=[];E.push((n+i)/t.width),E.push((w+c)/t.width),E.push((B+l)/t.height),E.push((s+Q)/t.height);var C=Math.max.apply(Math,E);C>1&&(n/=C,B/=C,i/=C,s/=C,c/=C,Q/=C,w/=C,l/=C);var g=t.width-i,U=t.height-Q,h=t.width-c,F=t.height-l,d=e.borderTopWidth,H=e.borderRightWidth,f=e.borderBottomWidth,p=e.borderLeftWidth,I=XA(e.paddingTop,A.bounds.width),K=XA(e.paddingRight,A.bounds.width),N=XA(e.paddingBottom,A.bounds.width),m=XA(e.paddingLeft,A.bounds.width);this.topLeftBorderBox=n>0||B>0?jn(t.left,t.top,n,B,Yn.TOP_LEFT):new Pn(t.left,t.top),this.topRightBorderBox=i>0||s>0?jn(t.left+g,t.top,i,s,Yn.TOP_RIGHT):new Pn(t.left+t.width,t.top),this.bottomRightBorderBox=c>0||Q>0?jn(t.left+h,t.top+U,c,Q,Yn.BOTTOM_RIGHT):new Pn(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=w>0||l>0?jn(t.left,t.top+F,w,l,Yn.BOTTOM_LEFT):new Pn(t.left,t.top+t.height),this.topLeftPaddingBox=n>0||B>0?jn(t.left+p,t.top+d,Math.max(0,n-p),Math.max(0,B-d),Yn.TOP_LEFT):new Pn(t.left+p,t.top+d),this.topRightPaddingBox=i>0||s>0?jn(t.left+Math.min(g,t.width+p),t.top+d,g>t.width+p?0:i-p,s-d,Yn.TOP_RIGHT):new Pn(t.left+t.width-H,t.top+d),this.bottomRightPaddingBox=c>0||Q>0?jn(t.left+Math.min(h,t.width-p),t.top+Math.min(U,t.height+d),Math.max(0,c-H),Q-f,Yn.BOTTOM_RIGHT):new Pn(t.left+t.width-H,t.top+t.height-f),this.bottomLeftPaddingBox=w>0||l>0?jn(t.left+p,t.top+F,Math.max(0,w-p),l-f,Yn.BOTTOM_LEFT):new Pn(t.left+p,t.top+t.height-f),this.topLeftContentBox=n>0||B>0?jn(t.left+p+m,t.top+d+I,Math.max(0,n-(p+m)),Math.max(0,B-(d+I)),Yn.TOP_LEFT):new Pn(t.left+p+m,t.top+d+I),this.topRightContentBox=i>0||s>0?jn(t.left+Math.min(g,t.width+p+m),t.top+d+I,g>t.width+p+m?0:i-p+m,s-(d+I),Yn.TOP_RIGHT):new Pn(t.left+t.width-(H+K),t.top+d+I),this.bottomRightContentBox=c>0||Q>0?jn(t.left+Math.min(h,t.width-(p+m)),t.top+Math.min(U,t.height+d+I),Math.max(0,c-(H+K)),Q-(f+N),Yn.BOTTOM_RIGHT):new Pn(t.left+t.width-(H+K),t.top+t.height-(f+N)),this.bottomLeftContentBox=w>0||l>0?jn(t.left+p+m,t.top+F,Math.max(0,w-(p+m)),l-(f+N),Yn.BOTTOM_LEFT):new Pn(t.left+p+m,t.top+t.height-(f+N))};!function(A){A[A.TOP_LEFT=0]="TOP_LEFT",A[A.TOP_RIGHT=1]="TOP_RIGHT",A[A.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",A[A.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(Yn||(Yn={}));var jn=function(A,e,t,r,n){var B=(Math.sqrt(2)-1)/3*4,o=t*B,i=r*B,s=A+t,a=e+r;switch(n){case Yn.TOP_LEFT:return new Vn(new Pn(A,a),new Pn(A,a-i),new Pn(s-o,e),new Pn(s,e));case Yn.TOP_RIGHT:return new Vn(new Pn(A,e),new Pn(A+o,e),new Pn(s,a-i),new Pn(s,a));case Yn.BOTTOM_RIGHT:return new Vn(new Pn(s,e),new Pn(s,e+i),new Pn(A+o,a),new Pn(A,a));case Yn.BOTTOM_LEFT:default:return new Vn(new Pn(s,a),new Pn(s-o,a),new Pn(A,e+i),new Pn(A,e))}},Zn=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},qn=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},_n=function(A,e,t){this.type=0,this.offsetX=A,this.offsetY=e,this.matrix=t,this.target=6},$n=function(A,e){this.type=1,this.target=e,this.path=A},AB=function(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},eB=function(){function A(A,e){if(this.container=A,this.effects=e.slice(0),this.curves=new Wn(A),null!==A.styles.transform){var t=A.bounds.left+A.styles.transformOrigin[0].number,r=A.bounds.top+A.styles.transformOrigin[1].number,n=A.styles.transform;this.effects.push(new _n(t,r,n))}if(A.styles.overflowX!==mt.VISIBLE){var B=Zn(this.curves),o=qn(this.curves);kn(B,o)?this.effects.push(new $n(B,6)):(this.effects.push(new $n(B,2)),this.effects.push(new $n(o,4)))}}return A.prototype.getParentEffects=function(){var A=this.effects.slice(0);if(this.container.styles.overflowX!==mt.VISIBLE){var e=Zn(this.curves),t=qn(this.curves);kn(e,t)||A.push(new $n(t,6))}return A},A}(),tB=function(A,e,t,r){A.container.elements.forEach((function(n){var B=gr(n.flags,4),o=gr(n.flags,2),i=new eB(n,A.getParentEffects());gr(n.styles.display,2048)&&r.push(i);var s=gr(n.flags,8)?[]:r;if(B||o){var a=B||n.styles.isPositioned()?t:e,c=new AB(i);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var Q=n.styles.zIndex.order;if(Q<0){var u=0;a.negativeZIndex.some((function(A,e){return Q>A.element.container.styles.zIndex.order?(u=e,!1):u>0})),a.negativeZIndex.splice(u,0,c)}else if(Q>0){var w=0;a.positiveZIndex.some((function(A,e){return Q>A.element.container.styles.zIndex.order?(w=e+1,!1):w>0})),a.positiveZIndex.splice(w,0,c)}else a.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?a.nonPositionedFloats.push(c):a.nonPositionedInlineLevel.push(c);tB(i,c,B?c:t,s)}else n.styles.isInlineLevel()?e.inlineLevel.push(i):e.nonInlineLevel.push(i),tB(i,e,t,s);gr(n.flags,8)&&rB(n,s)}))},rB=function(A,e){for(var t=A instanceof Yr?A.start:1,r=A instanceof Yr&&A.reversed,n=0;n<e.length;n++){var B=e[n];B.container instanceof Jr&&"number"==typeof B.container.value&&0!==B.container.value&&(t=B.container.value),B.listValue=Rn(t,B.container.styles.listStyleType,!0),t+=r?-1:1}},nB=function(A,e,t,r){var n=[];return Xn(A)?n.push(A.subdivide(.5,!1)):n.push(A),Xn(t)?n.push(t.subdivide(.5,!0)):n.push(t),Xn(r)?n.push(r.subdivide(.5,!0).reverse()):n.push(r),Xn(e)?n.push(e.subdivide(.5,!1).reverse()):n.push(e),n},BB=function(A){var e=A.bounds,t=A.styles;return e.add(t.borderLeftWidth,t.borderTopWidth,-(t.borderRightWidth+t.borderLeftWidth),-(t.borderTopWidth+t.borderBottomWidth))},oB=function(A){var e=A.styles,t=A.bounds,r=XA(e.paddingLeft,t.width),n=XA(e.paddingRight,t.width),B=XA(e.paddingTop,t.width),o=XA(e.paddingBottom,t.width);return t.add(r+e.borderLeftWidth,B+e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth+r+n),-(e.borderTopWidth+e.borderBottomWidth+B+o))},iB=function(A,e,t){var r=function(A,e){return 0===A?e.bounds:2===A?oB(e):BB(e)}(QB(A.styles.backgroundOrigin,e),A),n=function(A,e){return A===oe.BORDER_BOX?e.bounds:A===oe.CONTENT_BOX?oB(e):BB(e)}(QB(A.styles.backgroundClip,e),A),B=cB(QB(A.styles.backgroundSize,e),t,r),o=B[0],i=B[1],s=VA(QB(A.styles.backgroundPosition,e),r.width-o,r.height-i);return[uB(QB(A.styles.backgroundRepeat,e),s,B,r,n),Math.round(r.left+s[0]),Math.round(r.top+s[1]),o,i]},sB=function(A){return TA(A)&&A.value===ke.AUTO},aB=function(A){return"number"==typeof A},cB=function(A,e,t){var r=e[0],n=e[1],B=e[2],o=A[0],i=A[1];if(JA(o)&&i&&JA(i))return[XA(o,t.width),XA(i,t.height)];var s=aB(B);if(TA(o)&&(o.value===ke.CONTAIN||o.value===ke.COVER))return aB(B)?t.width/t.height<B!=(o.value===ke.COVER)?[t.width,t.width/B]:[t.height*B,t.height]:[t.width,t.height];var a=aB(r),c=aB(n),Q=a||c;if(sB(o)&&(!i||sB(i)))return a&&c?[r,n]:s||Q?Q&&s?[a?r:n*B,c?n:r/B]:[a?r:t.width,c?n:t.height]:[t.width,t.height];if(s){var u=0,w=0;return JA(o)?u=XA(o,t.width):JA(i)&&(w=XA(i,t.height)),sB(o)?u=w*B:i&&!sB(i)||(w=u/B),[u,w]}var l=null,E=null;if(JA(o)?l=XA(o,t.width):i&&JA(i)&&(E=XA(i,t.height)),null===l||i&&!sB(i)||(E=a&&c?l/r*n:t.height),null!==E&&sB(o)&&(l=a&&c?E/n*r:t.width),null!==l&&null!==E)return[l,E];throw new Error("Unable to calculate background-size for element")},QB=function(A,e){var t=A[e];return void 0===t?A[0]:t},uB=function(A,e,t,r,n){var B=e[0],o=e[1],i=t[0],s=t[1];switch(A){case be.REPEAT_X:return[new Pn(Math.round(r.left),Math.round(r.top+o)),new Pn(Math.round(r.left+r.width),Math.round(r.top+o)),new Pn(Math.round(r.left+r.width),Math.round(s+r.top+o)),new Pn(Math.round(r.left),Math.round(s+r.top+o))];case be.REPEAT_Y:return[new Pn(Math.round(r.left+B),Math.round(r.top)),new Pn(Math.round(r.left+B+i),Math.round(r.top)),new Pn(Math.round(r.left+B+i),Math.round(r.height+r.top)),new Pn(Math.round(r.left+B),Math.round(r.height+r.top))];case be.NO_REPEAT:return[new Pn(Math.round(r.left+B),Math.round(r.top+o)),new Pn(Math.round(r.left+B+i),Math.round(r.top+o)),new Pn(Math.round(r.left+B+i),Math.round(r.top+o+s)),new Pn(Math.round(r.left+B),Math.round(r.top+o+s))];default:return[new Pn(Math.round(n.left),Math.round(n.top)),new Pn(Math.round(n.left+n.width),Math.round(n.top)),new Pn(Math.round(n.left+n.width),Math.round(n.height+n.top)),new Pn(Math.round(n.left),Math.round(n.height+n.top))]}},wB=function(){function A(A){this._data={},this._document=A}return A.prototype.parseMetrics=function(A,e){var t=this._document.createElement("div"),r=this._document.createElement("img"),n=this._document.createElement("span"),B=this._document.body;t.style.visibility="hidden",t.style.fontFamily=A,t.style.fontSize=e,t.style.margin="0",t.style.padding="0",B.appendChild(t),r.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",r.width=1,r.height=1,r.style.margin="0",r.style.padding="0",r.style.verticalAlign="baseline",n.style.fontFamily=A,n.style.fontSize=e,n.style.margin="0",n.style.padding="0",n.appendChild(this._document.createTextNode("Hidden Text")),t.appendChild(n),t.appendChild(r);var o=r.offsetTop-n.offsetTop+2;t.removeChild(n),t.appendChild(this._document.createTextNode("Hidden Text")),t.style.lineHeight="normal",r.style.verticalAlign="super";var i=r.offsetTop-t.offsetTop+2;return B.removeChild(t),{baseline:o,middle:i}},A.prototype.getMetrics=function(A,e){var t=A+" "+e;return void 0===this._data[t]&&(this._data[t]=this.parseMetrics(A,e)),this._data[t]},A}(),lB=function(){function A(A){this._activeEffects=[],this.canvas=A.canvas?A.canvas:document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.options=A,A.canvas||(this.canvas.width=Math.floor(A.width*A.scale),this.canvas.height=Math.floor(A.height*A.scale),this.canvas.style.width=A.width+"px",this.canvas.style.height=A.height+"px"),this.fontMetrics=new wB(document),this.ctx.scale(this.options.scale,this.options.scale),this.ctx.translate(-A.x+A.scrollX,-A.y+A.scrollY),this.ctx.textBaseline="bottom",this._activeEffects=[],Ie.getInstance(A.id).debug("Canvas renderer initialized ("+A.width+"x"+A.height+" at "+A.x+","+A.y+") with scale "+A.scale)}return A.prototype.applyEffects=function(A,e){for(var t=this;this._activeEffects.length;)this.popEffect();A.filter((function(A){return gr(A.target,e)})).forEach((function(A){return t.applyEffect(A)}))},A.prototype.applyEffect=function(A){this.ctx.save(),function(A){return 0===A.type}(A)&&(this.ctx.translate(A.offsetX,A.offsetY),this.ctx.transform(A.matrix[0],A.matrix[1],A.matrix[2],A.matrix[3],A.matrix[4],A.matrix[5]),this.ctx.translate(-A.offsetX,-A.offsetY)),function(A){return 1===A.type}(A)&&(this.path(A.path),this.ctx.clip()),this._activeEffects.push(A)},A.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},A.prototype.renderStack=function(A){return r(this,void 0,void 0,(function(){var e;return n(this,(function(t){switch(t.label){case 0:return(e=A.element.container.styles).isVisible()?(this.ctx.globalAlpha=e.opacity,[4,this.renderStackContent(A)]):[3,2];case 1:t.sent(),t.label=2;case 2:return[2]}}))}))},A.prototype.renderNode=function(A){return r(this,void 0,void 0,(function(){return n(this,(function(e){switch(e.label){case 0:return A.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(A)]:[3,3];case 1:return e.sent(),[4,this.renderNodeContent(A)];case 2:e.sent(),e.label=3;case 3:return[2]}}))}))},A.prototype.renderTextWithLetterSpacing=function(A,e){var t=this;0===e?this.ctx.fillText(A.text,A.bounds.left,A.bounds.top+A.bounds.height):i(A.text).map((function(A){return s(A)})).reduce((function(e,r){return t.ctx.fillText(r,e,A.bounds.top+A.bounds.height),e+t.ctx.measureText(r).width}),A.bounds.left)},A.prototype.createFontStyle=function(A){var e=A.fontVariant.filter((function(A){return"normal"===A||"small-caps"===A})).join(""),t=A.fontFamily.join(", "),r=MA(A.fontSize)?""+A.fontSize.number+A.fontSize.unit:A.fontSize.number+"px";return[[A.fontStyle,e,A.fontWeight,r,t].join(" "),t,r]},A.prototype.renderTextNode=function(A,e){return r(this,void 0,void 0,(function(){var t,r,B,o,i=this;return n(this,(function(n){return t=this.createFontStyle(e),r=t[0],B=t[1],o=t[2],this.ctx.font=r,A.textBounds.forEach((function(A){i.ctx.fillStyle=Ae(e.color),i.renderTextWithLetterSpacing(A,e.letterSpacing);var t=e.textShadow;t.length&&A.text.trim().length&&(t.slice(0).reverse().forEach((function(e){i.ctx.shadowColor=Ae(e.color),i.ctx.shadowOffsetX=e.offsetX.number*i.options.scale,i.ctx.shadowOffsetY=e.offsetY.number*i.options.scale,i.ctx.shadowBlur=e.blur.number,i.ctx.fillText(A.text,A.bounds.left,A.bounds.top+A.bounds.height)})),i.ctx.shadowColor="",i.ctx.shadowOffsetX=0,i.ctx.shadowOffsetY=0,i.ctx.shadowBlur=0),e.textDecorationLine.length&&(i.ctx.fillStyle=Ae(e.textDecorationColor||e.color),e.textDecorationLine.forEach((function(e){switch(e){case 1:var t=i.fontMetrics.getMetrics(B,o).baseline;i.ctx.fillRect(A.bounds.left,Math.round(A.bounds.top+t),A.bounds.width,1);break;case 2:i.ctx.fillRect(A.bounds.left,Math.round(A.bounds.top),A.bounds.width,1);break;case 3:var r=i.fontMetrics.getMetrics(B,o).middle;i.ctx.fillRect(A.bounds.left,Math.ceil(A.bounds.top+r),A.bounds.width,1)}})))})),[2]}))}))},A.prototype.renderReplacedElement=function(A,e,t){if(t&&A.intrinsicWidth>0&&A.intrinsicHeight>0){var r=oB(A),n=qn(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,r.left,r.top,r.width,r.height),this.ctx.restore()}},A.prototype.renderNodeContent=function(e){return r(this,void 0,void 0,(function(){var t,r,o,i,s,a,c,Q,w,l,E,C,g,U;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(e.effects,4),t=e.container,r=e.curves,o=t.styles,i=0,s=t.textNodes,n.label=1;case 1:return i<s.length?(a=s[i],[4,this.renderTextNode(a,o)]):[3,4];case 2:n.sent(),n.label=3;case 3:return i++,[3,1];case 4:if(!(t instanceof vr))return[3,8];n.label=5;case 5:return n.trys.push([5,7,,8]),[4,this.options.cache.match(t.src)];case 6:return C=n.sent(),this.renderReplacedElement(t,r,C),[3,8];case 7:return n.sent(),Ie.getInstance(this.options.id).error("Error loading image "+t.src),[3,8];case 8:if(t instanceof xr&&this.renderReplacedElement(t,r,t.canvas),!(t instanceof Gr))return[3,12];n.label=9;case 9:return n.trys.push([9,11,,12]),[4,this.options.cache.match(t.svg)];case 10:return C=n.sent(),this.renderReplacedElement(t,r,C),[3,12];case 11:return n.sent(),Ie.getInstance(this.options.id).error("Error loading svg "+t.svg.substring(0,255)),[3,12];case 12:return t instanceof Zr&&t.tree?[4,new A({id:this.options.id,scale:this.options.scale,backgroundColor:t.backgroundColor,x:0,y:0,scrollX:0,scrollY:0,width:t.width,height:t.height,cache:this.options.cache,windowWidth:t.width,windowHeight:t.height}).render(t.tree)]:[3,14];case 13:c=n.sent(),t.width&&t.height&&this.ctx.drawImage(c,0,0,t.width,t.height,t.bounds.left,t.bounds.top,t.bounds.width,t.bounds.height),n.label=14;case 14:if(t instanceof Vr&&(Q=Math.min(t.bounds.width,t.bounds.height),"checkbox"===t.type?t.checked&&(this.ctx.save(),this.path([new Pn(t.bounds.left+.39363*Q,t.bounds.top+.79*Q),new Pn(t.bounds.left+.16*Q,t.bounds.top+.5549*Q),new Pn(t.bounds.left+.27347*Q,t.bounds.top+.44071*Q),new Pn(t.bounds.left+.39694*Q,t.bounds.top+.5649*Q),new Pn(t.bounds.left+.72983*Q,t.bounds.top+.23*Q),new Pn(t.bounds.left+.84*Q,t.bounds.top+.34085*Q),new Pn(t.bounds.left+.39363*Q,t.bounds.top+.79*Q)]),this.ctx.fillStyle=Ae(707406591),this.ctx.fill(),this.ctx.restore()):"radio"===t.type&&t.checked&&(this.ctx.save(),this.ctx.beginPath(),this.ctx.arc(t.bounds.left+Q/2,t.bounds.top+Q/2,Q/4,0,2*Math.PI,!0),this.ctx.fillStyle=Ae(707406591),this.ctx.fill(),this.ctx.restore())),EB(t)&&t.value.length){switch(this.ctx.font=this.createFontStyle(o)[0],this.ctx.fillStyle=Ae(o.color),this.ctx.textBaseline="middle",this.ctx.textAlign=gB(t.styles.textAlign),U=oB(t),w=0,t.styles.textAlign){case bt.CENTER:w+=U.width/2;break;case bt.RIGHT:w+=U.width}l=U.add(w,0,0,-U.height/2+1),this.ctx.save(),this.path([new Pn(U.left,U.top),new Pn(U.left+U.width,U.top),new Pn(U.left+U.width,U.top+U.height),new Pn(U.left,U.top+U.height)]),this.ctx.clip(),this.renderTextWithLetterSpacing(new Rr(t.value,l),o.letterSpacing),this.ctx.restore(),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"}if(!gr(t.styles.display,2048))return[3,20];if(null===t.styles.listStyleImage)return[3,19];if((E=t.styles.listStyleImage).type!==ce.URL)return[3,18];C=void 0,g=E.url,n.label=15;case 15:return n.trys.push([15,17,,18]),[4,this.options.cache.match(g)];case 16:return C=n.sent(),this.ctx.drawImage(C,t.bounds.left-(C.width+10),t.bounds.top),[3,18];case 17:return n.sent(),Ie.getInstance(this.options.id).error("Error loading list-style-image "+g),[3,18];case 18:return[3,20];case 19:e.listValue&&t.styles.listStyleType!==Kt.NONE&&(this.ctx.font=this.createFontStyle(o)[0],this.ctx.fillStyle=Ae(o.color),this.ctx.textBaseline="middle",this.ctx.textAlign="right",U=new B(t.bounds.left,t.bounds.top+XA(t.styles.paddingTop,t.bounds.width),t.bounds.width,function(A,e){return TA(A)&&"normal"===A.value?1.2*e:A.type===u.NUMBER_TOKEN?e*A.number:JA(A)?XA(A,e):e}(o.lineHeight,o.fontSize.number)/2+1),this.renderTextWithLetterSpacing(new Rr(e.listValue,U),o.letterSpacing),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"),n.label=20;case 20:return[2]}}))}))},A.prototype.renderStackContent=function(A){return r(this,void 0,void 0,(function(){var e,t,r,B,o,i,s,a,c,Q,u,w,l,E,C;return n(this,(function(n){switch(n.label){case 0:return[4,this.renderNodeBackgroundAndBorders(A.element)];case 1:n.sent(),e=0,t=A.negativeZIndex,n.label=2;case 2:return e<t.length?(C=t[e],[4,this.renderStack(C)]):[3,5];case 3:n.sent(),n.label=4;case 4:return e++,[3,2];case 5:return[4,this.renderNodeContent(A.element)];case 6:n.sent(),r=0,B=A.nonInlineLevel,n.label=7;case 7:return r<B.length?(C=B[r],[4,this.renderNode(C)]):[3,10];case 8:n.sent(),n.label=9;case 9:return r++,[3,7];case 10:o=0,i=A.nonPositionedFloats,n.label=11;case 11:return o<i.length?(C=i[o],[4,this.renderStack(C)]):[3,14];case 12:n.sent(),n.label=13;case 13:return o++,[3,11];case 14:s=0,a=A.nonPositionedInlineLevel,n.label=15;case 15:return s<a.length?(C=a[s],[4,this.renderStack(C)]):[3,18];case 16:n.sent(),n.label=17;case 17:return s++,[3,15];case 18:c=0,Q=A.inlineLevel,n.label=19;case 19:return c<Q.length?(C=Q[c],[4,this.renderNode(C)]):[3,22];case 20:n.sent(),n.label=21;case 21:return c++,[3,19];case 22:u=0,w=A.zeroOrAutoZIndexOrTransformedOrOpacity,n.label=23;case 23:return u<w.length?(C=w[u],[4,this.renderStack(C)]):[3,26];case 24:n.sent(),n.label=25;case 25:return u++,[3,23];case 26:l=0,E=A.positiveZIndex,n.label=27;case 27:return l<E.length?(C=E[l],[4,this.renderStack(C)]):[3,30];case 28:n.sent(),n.label=29;case 29:return l++,[3,27];case 30:return[2]}}))}))},A.prototype.mask=function(A){this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.lineTo(this.canvas.width,0),this.ctx.lineTo(this.canvas.width,this.canvas.height),this.ctx.lineTo(0,this.canvas.height),this.ctx.lineTo(0,0),this.formatPath(A.slice(0).reverse()),this.ctx.closePath()},A.prototype.path=function(A){this.ctx.beginPath(),this.formatPath(A),this.ctx.closePath()},A.prototype.formatPath=function(A){var e=this;A.forEach((function(A,t){var r=Xn(A)?A.start:A;0===t?e.ctx.moveTo(r.x,r.y):e.ctx.lineTo(r.x,r.y),Xn(A)&&e.ctx.bezierCurveTo(A.startControl.x,A.startControl.y,A.endControl.x,A.endControl.y,A.end.x,A.end.y)}))},A.prototype.renderRepeat=function(A,e,t,r){this.path(A),this.ctx.fillStyle=e,this.ctx.translate(t,r),this.ctx.fill(),this.ctx.translate(-t,-r)},A.prototype.resizeImage=function(A,e,t){if(A.width===e&&A.height===t)return A;var r=this.canvas.ownerDocument.createElement("canvas");return r.width=e,r.height=t,r.getContext("2d").drawImage(A,0,0,A.width,A.height,0,0,e,t),r},A.prototype.renderBackgroundImage=function(A){return r(this,void 0,void 0,(function(){var e,t,r,B,o,i;return n(this,(function(s){switch(s.label){case 0:e=A.styles.backgroundImage.length-1,t=function(t){var B,o,i,s,a,c,Q,u,w,l,E,C,g,U,h,F,d,H,f,p,I,K,N,m,R,D,M,L,T,y,O;return n(this,(function(n){switch(n.label){case 0:if(t.type!==ce.URL)return[3,5];B=void 0,o=t.url,n.label=1;case 1:return n.trys.push([1,3,,4]),[4,r.options.cache.match(o)];case 2:return B=n.sent(),[3,4];case 3:return n.sent(),Ie.getInstance(r.options.id).error("Error loading background-image "+o),[3,4];case 4:return B&&(i=iB(A,e,[B.width,B.height,B.width/B.height]),F=i[0],K=i[1],N=i[2],f=i[3],p=i[4],U=r.ctx.createPattern(r.resizeImage(B,f,p),"repeat"),r.renderRepeat(F,U,K,N)),[3,6];case 5:t.type===ce.LINEAR_GRADIENT?(s=iB(A,e,[null,null,null]),F=s[0],K=s[1],N=s[2],f=s[3],p=s[4],a=ge(t.angle,f,p),c=a[0],Q=a[1],u=a[2],w=a[3],l=a[4],(E=document.createElement("canvas")).width=f,E.height=p,C=E.getContext("2d"),g=C.createLinearGradient(Q,w,u,l),Ce(t.stops,c).forEach((function(A){return g.addColorStop(A.stop,Ae(A.color))})),C.fillStyle=g,C.fillRect(0,0,f,p),f>0&&p>0&&(U=r.ctx.createPattern(E,"repeat"),r.renderRepeat(F,U,K,N))):function(A){return A.type===ce.RADIAL_GRADIENT}(t)&&(h=iB(A,e,[null,null,null]),F=h[0],d=h[1],H=h[2],f=h[3],p=h[4],I=0===t.position.length?[PA]:t.position,K=XA(I[0],f),N=XA(I[I.length-1],p),m=function(A,e,t,r,n){var B=0,o=0;switch(A.size){case ue.CLOSEST_SIDE:A.shape===Qe.CIRCLE?B=o=Math.min(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):A.shape===Qe.ELLIPSE&&(B=Math.min(Math.abs(e),Math.abs(e-r)),o=Math.min(Math.abs(t),Math.abs(t-n)));break;case ue.CLOSEST_CORNER:if(A.shape===Qe.CIRCLE)B=o=Math.min(Ue(e,t),Ue(e,t-n),Ue(e-r,t),Ue(e-r,t-n));else if(A.shape===Qe.ELLIPSE){var i=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-r)),s=he(r,n,e,t,!0),a=s[0],c=s[1];o=i*(B=Ue(a-e,(c-t)/i))}break;case ue.FARTHEST_SIDE:A.shape===Qe.CIRCLE?B=o=Math.max(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):A.shape===Qe.ELLIPSE&&(B=Math.max(Math.abs(e),Math.abs(e-r)),o=Math.max(Math.abs(t),Math.abs(t-n)));break;case ue.FARTHEST_CORNER:if(A.shape===Qe.CIRCLE)B=o=Math.max(Ue(e,t),Ue(e,t-n),Ue(e-r,t),Ue(e-r,t-n));else if(A.shape===Qe.ELLIPSE){i=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-r));var Q=he(r,n,e,t,!1);a=Q[0],c=Q[1],o=i*(B=Ue(a-e,(c-t)/i))}}return Array.isArray(A.size)&&(B=XA(A.size[0],r),o=2===A.size.length?XA(A.size[1],n):B),[B,o]}(t,K,N,f,p),R=m[0],D=m[1],R>0&&R>0&&(M=r.ctx.createRadialGradient(d+K,H+N,0,d+K,H+N,R),Ce(t.stops,2*R).forEach((function(A){return M.addColorStop(A.stop,Ae(A.color))})),r.path(F),r.ctx.fillStyle=M,R!==D?(L=A.bounds.left+.5*A.bounds.width,T=A.bounds.top+.5*A.bounds.height,O=1/(y=D/R),r.ctx.save(),r.ctx.translate(L,T),r.ctx.transform(1,0,0,y,0,0),r.ctx.translate(-L,-T),r.ctx.fillRect(d,O*(H-T)+T,f,p*O),r.ctx.restore()):r.ctx.fill())),n.label=6;case 6:return e--,[2]}}))},r=this,B=0,o=A.styles.backgroundImage.slice(0).reverse(),s.label=1;case 1:return B<o.length?(i=o[B],[5,t(i)]):[3,4];case 2:s.sent(),s.label=3;case 3:return B++,[3,1];case 4:return[2]}}))}))},A.prototype.renderBorder=function(A,e,t){return r(this,void 0,void 0,(function(){return n(this,(function(r){return this.path(function(A,e){switch(e){case 0:return nB(A.topLeftBorderBox,A.topLeftPaddingBox,A.topRightBorderBox,A.topRightPaddingBox);case 1:return nB(A.topRightBorderBox,A.topRightPaddingBox,A.bottomRightBorderBox,A.bottomRightPaddingBox);case 2:return nB(A.bottomRightBorderBox,A.bottomRightPaddingBox,A.bottomLeftBorderBox,A.bottomLeftPaddingBox);case 3:default:return nB(A.bottomLeftBorderBox,A.bottomLeftPaddingBox,A.topLeftBorderBox,A.topLeftPaddingBox)}}(t,e)),this.ctx.fillStyle=Ae(A),this.ctx.fill(),[2]}))}))},A.prototype.renderNodeBackgroundAndBorders=function(A){return r(this,void 0,void 0,(function(){var e,t,r,B,o,i,s,a,c=this;return n(this,(function(n){switch(n.label){case 0:return this.applyEffects(A.effects,2),e=A.container.styles,t=!$A(e.backgroundColor)||e.backgroundImage.length,r=[{style:e.borderTopStyle,color:e.borderTopColor},{style:e.borderRightStyle,color:e.borderRightColor},{style:e.borderBottomStyle,color:e.borderBottomColor},{style:e.borderLeftStyle,color:e.borderLeftColor}],B=CB(QB(e.backgroundClip,0),A.curves),t||e.boxShadow.length?(this.ctx.save(),this.path(B),this.ctx.clip(),$A(e.backgroundColor)||(this.ctx.fillStyle=Ae(e.backgroundColor),this.ctx.fill()),[4,this.renderBackgroundImage(A.container)]):[3,2];case 1:n.sent(),this.ctx.restore(),e.boxShadow.slice(0).reverse().forEach((function(e){c.ctx.save();var t,r,n,B,o,i=Zn(A.curves),s=e.inset?0:1e4,a=(t=i,r=-s+(e.inset?1:-1)*e.spread.number,n=(e.inset?1:-1)*e.spread.number,B=e.spread.number*(e.inset?-2:2),o=e.spread.number*(e.inset?-2:2),t.map((function(A,e){switch(e){case 0:return A.add(r,n);case 1:return A.add(r+B,n);case 2:return A.add(r+B,n+o);case 3:return A.add(r,n+o)}return A})));e.inset?(c.path(i),c.ctx.clip(),c.mask(a)):(c.mask(i),c.ctx.clip(),c.path(a)),c.ctx.shadowOffsetX=e.offsetX.number+s,c.ctx.shadowOffsetY=e.offsetY.number,c.ctx.shadowColor=Ae(e.color),c.ctx.shadowBlur=e.blur.number,c.ctx.fillStyle=e.inset?Ae(e.color):"rgba(0,0,0,1)",c.ctx.fill(),c.ctx.restore()})),n.label=2;case 2:o=0,i=0,s=r,n.label=3;case 3:return i<s.length?(a=s[i]).style===Ve.NONE||$A(a.color)?[3,5]:[4,this.renderBorder(a.color,o,A.curves)]:[3,7];case 4:n.sent(),n.label=5;case 5:o++,n.label=6;case 6:return i++,[3,3];case 7:return[2]}}))}))},A.prototype.render=function(A){return r(this,void 0,void 0,(function(){var e;return n(this,(function(t){switch(t.label){case 0:return this.options.backgroundColor&&(this.ctx.fillStyle=Ae(this.options.backgroundColor),this.ctx.fillRect(this.options.x-this.options.scrollX,this.options.y-this.options.scrollY,this.options.width,this.options.height)),r=new eB(A,[]),n=new AB(r),tB(r,n,n,B=[]),rB(r.container,B),e=n,[4,this.renderStack(e)];case 1:return t.sent(),this.applyEffects([],2),[2,this.canvas]}var r,n,B}))}))},A}(),EB=function(A){return A instanceof Wr||A instanceof Xr||A instanceof Vr&&"radio"!==A.type&&"checkbox"!==A.type},CB=function(A,e){switch(A){case oe.BORDER_BOX:return Zn(e);case oe.CONTENT_BOX:return function(A){return[A.topLeftContentBox,A.topRightContentBox,A.bottomRightContentBox,A.bottomLeftContentBox]}(e);case oe.PADDING_BOX:default:return qn(e)}},gB=function(A){switch(A){case bt.CENTER:return"center";case bt.RIGHT:return"right";case bt.LEFT:default:return"left"}},UB=function(){function A(A){this.canvas=A.canvas?A.canvas:document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.options=A,this.canvas.width=Math.floor(A.width*A.scale),this.canvas.height=Math.floor(A.height*A.scale),this.canvas.style.width=A.width+"px",this.canvas.style.height=A.height+"px",this.ctx.scale(this.options.scale,this.options.scale),this.ctx.translate(-A.x+A.scrollX,-A.y+A.scrollY),Ie.getInstance(A.id).debug("EXPERIMENTAL ForeignObject renderer initialized ("+A.width+"x"+A.height+" at "+A.x+","+A.y+") with scale "+A.scale)}return A.prototype.render=function(A){return r(this,void 0,void 0,(function(){var e,t;return n(this,(function(r){switch(r.label){case 0:return e=He(Math.max(this.options.windowWidth,this.options.width)*this.options.scale,Math.max(this.options.windowHeight,this.options.height)*this.options.scale,this.options.scrollX*this.options.scale,this.options.scrollY*this.options.scale,A),[4,hB(e)];case 1:return t=r.sent(),this.options.backgroundColor&&(this.ctx.fillStyle=Ae(this.options.backgroundColor),this.ctx.fillRect(0,0,this.options.width*this.options.scale,this.options.height*this.options.scale)),this.ctx.drawImage(t,-this.options.x*this.options.scale,-this.options.y*this.options.scale),[2,this.canvas]}}))}))},A}(),hB=function(A){return new Promise((function(e,t){var r=new Image;r.onload=function(){e(r)},r.onerror=t,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},FB=function(A){return _A(DA.create(A).parseComponentValue())};Ke.setContext(window);var dB=function(A,e){return r(void 0,void 0,void 0,(function(){var r,i,s,a,c,Q,u,w,l,E,C,g,U,h,F,d,H,f,p,I,K,N,m;return n(this,(function(n){switch(n.label){case 0:if(!(r=A.ownerDocument))throw new Error("Element is not attached to a Document");if(!(i=r.defaultView))throw new Error("Document is not attached to a Window");return s=(Math.round(1e3*Math.random())+Date.now()).toString(16),a=Qn(A)||"HTML"===A.tagName?function(A){var e=A.body,t=A.documentElement;if(!e||!t)throw new Error("Unable to get document size");var r=Math.max(Math.max(e.scrollWidth,t.scrollWidth),Math.max(e.offsetWidth,t.offsetWidth),Math.max(e.clientWidth,t.clientWidth)),n=Math.max(Math.max(e.scrollHeight,t.scrollHeight),Math.max(e.offsetHeight,t.offsetHeight),Math.max(e.clientHeight,t.clientHeight));return new B(0,0,r,n)}(r):o(A),c=a.width,Q=a.height,u=a.left,w=a.top,l=t({},{allowTaint:!1,imageTimeout:15e3,proxy:void 0,useCORS:!1},e),E={backgroundColor:"#ffffff",cache:e.cache?e.cache:Ke.create(s,l),logging:!0,removeContainer:!0,foreignObjectRendering:!1,scale:i.devicePixelRatio||1,windowWidth:i.innerWidth,windowHeight:i.innerHeight,scrollX:i.pageXOffset,scrollY:i.pageYOffset,x:u,y:w,width:Math.ceil(c),height:Math.ceil(Q),id:s},C=t({},E,l,e),g=new B(C.scrollX,C.scrollY,C.windowWidth,C.windowHeight),Ie.create({id:s,enabled:C.logging}),Ie.getInstance(s).debug("Starting document clone"),U=new Dn(A,{id:s,onclone:C.onclone,ignoreElements:C.ignoreElements,inlineImages:C.foreignObjectRendering,copyStyles:C.foreignObjectRendering}),(h=U.clonedReferenceElement)?[4,U.toIFrame(r,g)]:[2,Promise.reject("Unable to find element in cloned iframe")];case 1:return F=n.sent(),d=r.documentElement?FB(getComputedStyle(r.documentElement).backgroundColor):ae.TRANSPARENT,H=r.body?FB(getComputedStyle(r.body).backgroundColor):ae.TRANSPARENT,f=e.backgroundColor,p="string"==typeof f?FB(f):null===f?ae.TRANSPARENT:4294967295,I=A===r.documentElement?$A(d)?$A(H)?p:H:d:p,K={id:s,cache:C.cache,canvas:C.canvas,backgroundColor:I,scale:C.scale,x:C.x,y:C.y,scrollX:C.scrollX,scrollY:C.scrollY,width:C.width,height:C.height,windowWidth:C.windowWidth,windowHeight:C.windowHeight},C.foreignObjectRendering?(Ie.getInstance(s).debug("Document cloned, using foreign object rendering"),[4,new UB(K).render(h)]):[3,3];case 2:return N=n.sent(),[3,5];case 3:return Ie.getInstance(s).debug("Document cloned, using computed rendering"),Ke.attachInstance(C.cache),Ie.getInstance(s).debug("Starting DOM parsing"),m=An(h),Ke.detachInstance(),I===m.styles.backgroundColor&&(m.styles.backgroundColor=ae.TRANSPARENT),Ie.getInstance(s).debug("Starting renderer"),[4,new lB(K).render(m)];case 4:N=n.sent(),n.label=5;case 5:return!0===C.removeContainer&&(Dn.destroy(F)||Ie.getInstance(s).error("Cannot detach cloned iframe as it is not in the DOM anymore")),Ie.getInstance(s).debug("Finished rendering"),Ie.destroy(s),Ke.destroy(s),[2,N]}}))}))};return function(A,e){return void 0===e&&(e={}),dB(A,e)}}()},function(A,e,t){var r=t(2),n=t(3);"string"==typeof(n=n.__esModule?n.default:n)&&(n=[[A.i,n,""]]);var B={insert:"head",singleton:!1};r(n,B);A.exports=n.locals||{}},function(A,e,t){"use strict";var r,n=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},B=function(){var A={};return function(e){if(void 0===A[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(A){t=null}A[e]=t}return A[e]}}(),o=[];function i(A){for(var e=-1,t=0;t<o.length;t++)if(o[t].identifier===A){e=t;break}return e}function s(A,e){for(var t={},r=[],n=0;n<A.length;n++){var B=A[n],s=e.base?B[0]+e.base:B[0],a=t[s]||0,c="".concat(s," ").concat(a);t[s]=a+1;var Q=i(c),u={css:B[1],media:B[2],sourceMap:B[3]};-1!==Q?(o[Q].references++,o[Q].updater(u)):o.push({identifier:c,updater:C(u,e),references:1}),r.push(c)}return r}function a(A){var e=document.createElement("style"),r=A.attributes||{};if(void 0===r.nonce){var n=t.nc;n&&(r.nonce=n)}if(Object.keys(r).forEach((function(A){e.setAttribute(A,r[A])})),"function"==typeof A.insert)A.insert(e);else{var o=B(A.insert||"head");if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(e)}return e}var c,Q=(c=[],function(A,e){return c[A]=e,c.filter(Boolean).join("\n")});function u(A,e,t,r){var n=t?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(A.styleSheet)A.styleSheet.cssText=Q(e,n);else{var B=document.createTextNode(n),o=A.childNodes;o[e]&&A.removeChild(o[e]),o.length?A.insertBefore(B,o[e]):A.appendChild(B)}}function w(A,e,t){var r=t.css,n=t.media,B=t.sourceMap;if(n?A.setAttribute("media",n):A.removeAttribute("media"),B&&btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(B))))," */")),A.styleSheet)A.styleSheet.cssText=r;else{for(;A.firstChild;)A.removeChild(A.firstChild);A.appendChild(document.createTextNode(r))}}var l=null,E=0;function C(A,e){var t,r,n;if(e.singleton){var B=E++;t=l||(l=a(e)),r=u.bind(null,t,B,!1),n=u.bind(null,t,B,!0)}else t=a(e),r=w.bind(null,t,e),n=function(){!function(A){if(null===A.parentNode)return!1;A.parentNode.removeChild(A)}(t)};return r(A),function(e){if(e){if(e.css===A.css&&e.media===A.media&&e.sourceMap===A.sourceMap)return;r(A=e)}else n()}}A.exports=function(A,e){(e=e||{}).singleton||"boolean"==typeof e.singleton||(e.singleton=n());var t=s(A=A||[],e);return function(A){if(A=A||[],"[object Array]"===Object.prototype.toString.call(A)){for(var r=0;r<t.length;r++){var n=i(t[r]);o[n].references--}for(var B=s(A,e),a=0;a<t.length;a++){var c=i(t[a]);0===o[c].references&&(o[c].updater(),o.splice(c,1))}t=B}}}},function(A,e,t){(e=t(4)(!1)).push([A.i,".container {\n overflow: hidden;\n position: relative;\n border: 1px solid #ccc;\n margin: 10px;\n}\n\ncanvas {\n position: absolute;\n}\n\n.menuContainer {\n position: absolute;\n background-color: #f5f5f5;\n color: #333;\n font-family: arial;\n z-index: 1000;\n}\n\n.menuItemContainer {\n padding: 10px 20px;\n padding-bottom: 0;\n cursor: pointer;\n}\n\n.menuItemContainer:last-child {\n padding-bottom: 10px;\n}\n\n.iconWithText {\n position: absolute;\n font-family: Arial, Helvetica, sans-serif;\n color: #f5f5f5;\n cursor: pointer;\n user-select: none;\n}\n\n.iconWithText img {\n pointer-events: none;\n}\n\n.iconTitle {\n font-weight: bold;\n font-size: 14px;\n padding: 20px 0;\n pointer-events: none;\n}\n\n.iconDescription {\n font-size: 12px;\n pointer-events: none;\n}\n",""]),A.exports=e},function(A,e,t){"use strict";A.exports=function(A){var e=[];return e.toString=function(){return this.map((function(e){var t=function(A,e){var t=A[1]||"",r=A[3];if(!r)return t;if(e&&"function"==typeof btoa){var n=(o=r,i=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),s="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(i),"/*# ".concat(s," */")),B=r.sources.map((function(A){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(A," */")}));return[t].concat(B).concat([n]).join("\n")}var o,i,s;return[t].join("\n")}(e,A);return e[2]?"@media ".concat(e[2]," {").concat(t,"}"):t})).join("")},e.i=function(A,t,r){"string"==typeof A&&(A=[[null,A,""]]);var n={};if(r)for(var B=0;B<this.length;B++){var o=this[B][0];null!=o&&(n[o]=!0)}for(var i=0;i<A.length;i++){var s=[].concat(A[i]);r&&n[s[0]]||(t&&(s[2]?s[2]="".concat(t," and ").concat(s[2]):s[2]=t),e.push(s))}},e}},function(A,e,t){"use strict";t.r(e);var r=t(0),n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),B=new Uint8Array(16);function o(){if(!n)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(B)}for(var i=[],s=0;s<256;++s)i.push((s+256).toString(16).substr(1));var a=function(A,e){var t=e||0,r=i;return(r[A[t+0]]+r[A[t+1]]+r[A[t+2]]+r[A[t+3]]+"-"+r[A[t+4]]+r[A[t+5]]+"-"+r[A[t+6]]+r[A[t+7]]+"-"+r[A[t+8]]+r[A[t+9]]+"-"+r[A[t+10]]+r[A[t+11]]+r[A[t+12]]+r[A[t+13]]+r[A[t+14]]+r[A[t+15]]).toLowerCase()};var c,Q=function(A,e,t){"string"==typeof A&&(e="binary"===A?new Uint8Array(16):null,A=null);var r=(A=A||{}).random||(A.rng||o)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,e){for(var n=t||0,B=0;B<16;++B)e[n+B]=r[B];return e}return a(r)},u={applicationHeight:0,applicationWidth:0,backgroundImageUrl:"",iconsWithText:{},images:{}},w=function(A){return u.iconsWithText[A.id]=A},l=function(A){return u.images[A.id]=A},E=function(A){return delete u.images[A]},C=function(A){return delete u.iconsWithText[A]},g=function(A){var e;for(var t in e=A.applicationHeight,u.applicationHeight=e,function(A){u.applicationWidth=A}(A.applicationWidth),function(A){u.backgroundImageUrl=A}(A.backgroundImageUrl),u.iconsWithText={},u.images={},A.iconsWithText)A.iconsWithText[t]&&w(A.iconsWithText[t]);for(var t in A.images)A.images[t]&&l(A.images[t])},U=function(){var A=this;this.setId=function(e){A.id=e,A.canvas.setAttribute("data-id",e)},this.getDom=function(){return A.canvas},this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.id=""},h=(c=function(A,e){return(c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)e.hasOwnProperty(t)&&(A[t]=e[t])})(A,e)},function(A,e){function t(){this.constructor=A}c(A,e),A.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}),F=new(function(A){function e(){var e=null!==A&&A.apply(this,arguments)||this;return e.setSize=function(A,t){e.canvas.width=A,e.canvas.height=t},e.setBackground=function(A){var t=document.createElement("img");t.src=A,t.width=e.canvas.width,t.onload=function(){e.context.drawImage(t,0,0,e.canvas.width,e.canvas.height)}},e}return h(e,A),e}(U)),d=new function(A,e){var t=this;this.dom=document.createElement("div"),this.renderMenu=function(A){t.dom.className=t.containerClassName,t.dom.style.display="none",t.dom.innerHTML="",A.forEach((function(A){var e=document.createElement("div");e.innerText=A.label,e.className=t.menuItemClassName,e.onclick=function(){return t.onMenuItemClicked(A)},t.dom.appendChild(e)}))},this.positionMenu=function(A,e){t.dom.style.display="block",t.dom.style.left=A-20+"px",t.dom.style.top=e-20+"px"},this.onMenuItemClicked=function(A){t.dom.style.display="none",A.menuAction()},this.containerClassName=A,this.menuItemClassName=e,document.addEventListener("click",(function(){return t.dom.style.display="none"})),document.body.appendChild(this.dom)}("menuContainer","menuItemContainer"),H=function(A,e,t,r,n){var B=this;this.dom=document.createElement("div"),this.loadIcon=function(A){var e=document.createElement("img");e.src=A,B.dom.appendChild(e)},this.loadText=function(A,e){var t=document.createElement("div");t.className=e,t.innerText=A,B.dom.appendChild(t)},this.addDragNDropListeners=function(){var A=!1,e=0,t=0;B.dom.addEventListener("mousedown",(function(r){1===r.which&&(A=!0,e=r.offsetX,t=r.offsetY)})),B.dom.addEventListener("mouseup",(function(){A=!1,e=0,t=0,function(A,e,t){u.iconsWithText[A].left=e,u.iconsWithText[A].top=t}(B.id,B.dom.offsetLeft,B.dom.offsetTop)})),document.addEventListener("mousemove",(function(r){if(A){var n=r.clientX,o=r.clientY;B.dom.style.left=n-e+"px",B.dom.style.top=o-t+"px"}})),document.addEventListener("click",(function(){A=!1}))},this.delete=function(){C(B.id);var A=document.querySelector("[data-id='"+B.id+"']");null==A||A.remove()},this.id=n,this.dom.setAttribute("data-id",n),this.dom.className=r,this.loadIcon(A),this.loadText(e,"iconTitle"),this.loadText(t,"iconDescription"),this.addDragNDropListeners()},f=function(){var A=function(e,t){return(A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)e.hasOwnProperty(t)&&(A[t]=e[t])})(e,t)};return function(e,t){function r(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}}(),p=function(A){function e(){var e=A.call(this)||this;return e.addDragNDropListeners=function(){var A=!1,t=0,r=0;e.canvas.addEventListener("mousedown",(function(e){1===e.which&&(A=!0,t=e.offsetX,r=e.offsetY)})),e.canvas.addEventListener("mouseup",(function(){var t,r,n;A=!1,t=e.id,r=e.canvas.offsetLeft,n=e.canvas.offsetTop,u.images[t].left=r,u.images[t].top=n})),document.addEventListener("mousemove",(function(n){if(A){var B=n.clientX,o=n.clientY;e.canvas.style.left=B-t+"px",e.canvas.style.top=o-r+"px"}}))},e.delete=function(){E(e.id);var A=document.querySelector("[data-id='"+e.id+"']");null==A||A.remove()},e.addDragNDropListeners(),e}return f(e,A),e}(U),I=function(A,e,t,r){return new(t||(t=Promise))((function(n,B){function o(A){try{s(r.next(A))}catch(A){B(A)}}function i(A){try{s(r.throw(A))}catch(A){B(A)}}function s(A){var e;A.done?n(A.value):(e=A.value,e instanceof t?e:new t((function(A){A(e)}))).then(o,i)}s((r=r.apply(A,e||[])).next())}))},K=function(A,e){var t,r,n,B,o={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return B={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(B[Symbol.iterator]=function(){return this}),B;function i(B){return function(i){return function(B){if(t)throw new TypeError("Generator is already executing.");for(;o;)try{if(t=1,r&&(n=2&B[0]?r.return:B[0]?r.throw||((n=r.return)&&n.call(r),0):r.next)&&!(n=n.call(r,B[1])).done)return n;switch(r=0,n&&(B=[2&B[0],n.value]),B[0]){case 0:case 1:n=B;break;case 4:return o.label++,{value:B[1],done:!1};case 5:o.label++,r=B[1],B=[0];continue;case 7:B=o.ops.pop(),o.trys.pop();continue;default:if(!(n=o.trys,(n=n.length>0&&n[n.length-1])||6!==B[0]&&2!==B[0])){o=0;continue}if(3===B[0]&&(!n||B[1]>n[0]&&B[1]<n[3])){o.label=B[1];break}if(6===B[0]&&o.label<n[1]){o.label=n[1],n=B;break}if(n&&o.label<n[2]){o.label=n[2],o.ops.push(B);break}n[2]&&o.ops.pop(),o.trys.pop();continue}B=e.call(A,o)}catch(A){B=[6,A],r=0}finally{t=n=0}if(5&B[0])throw B[1];return{value:B[0]?B[1]:void 0,done:!0}}([B,i])}}},N=function(A,e,t){var r=new p,n=document.createElement("img");n.src=A,n.onload=function(){if(r.canvas.width=n.width,r.canvas.height=n.height,r.context.drawImage(n,0,0),t)r.canvas.style.left=t.left+"px",r.canvas.style.top=t.top+"px",r.setId(t.id);else{var e=F.getDom().offsetWidth,B=F.getDom().offsetHeight,o=e/2-n.width/2,i=B/2-n.height/2;r.canvas.style.left=o+"px",r.canvas.style.top=i+"px";var s=Q();l({id:s,imageUrl:A,left:o,top:i}),r.setId(s)}},e.appendChild(r.canvas)},m=function(A){A.addEventListener("contextmenu",(function(e){var t=e.target;e.preventDefault(),d.renderMenu([{label:"Insert Icon with Text",menuAction:function(){return R(A)}},{label:"Export Collage",menuAction:function(){return M(A)}},{label:"Save",menuAction:function(){return D(u)}},{label:"Delete Element",menuAction:function(){var A=t.getAttribute("data-id");A&&(C(A),E(A),t.remove())}}]),d.positionMenu(e.clientX,e.clientY)}))},R=function(A,e){return I(void 0,void 0,void 0,(function(){var t,r,n,B,o,i,s,a,c;return K(this,(function(u){switch(u.label){case 0:return e?((t=new H(e.imageUrl,e.title,e.description,"iconWithText",e.id)).dom.style.left=e.left+"px",t.dom.style.top=e.top+"px",[3,3]):[3,1];case 1:return[4,new Promise((function(A,e){var t=document.createElement("input");t.type="file",t.accept="image/svg+xml",t.onchange=function(t){var r=t.target,n=r.files&&r.files[0],B=new FileReader;B.onload=function(e){var t,r=null===(t=e.target)||void 0===t?void 0:t.result,n="data:image/svg+xml;base64,"+window.btoa(r);A(n)},B.onerror=function(A){e(A)},B.readAsText(n)},t.click()}))];case 2:r=u.sent(),n=window.prompt("Please enter a Title"),B=window.prompt("Please enter a Description for "+n),o=Q(),t=new H(r,n,B,"iconWithText",o),i=F.getDom().offsetWidth,s=F.getDom().offsetHeight,a=i/2-t.dom.offsetWidth/2,c=s/2-t.dom.offsetHeight/2,t.dom.style.left=a+"px",t.dom.style.top=c+"px",w({description:B,id:o,imageUrl:r,left:a,title:n,top:c}),u.label=3;case 3:return A.appendChild(t.dom),[2]}}))}))},D=function(A){document.dispatchEvent(new CustomEvent("collageExport",{detail:A}))},M=function(A){return I(void 0,void 0,void 0,(function(){return K(this,(function(e){switch(e.label){case 0:return[4,r(A,{useCORS:!0,allowTaint:!0})];case 1:return e.sent().toBlob((function(A){var e=document.createElement("a");e.download=Date.now()+".png",e.href=window.URL.createObjectURL(A),e.click()}),"image/png"),[2]}}))}))},L=function(A,e){g(e),A.innerHTML="";var t=u.applicationHeight,r=u.applicationWidth,n=u.backgroundImageUrl,B=u.images,o=u.iconsWithText;for(var i in A.style.width=r+"px",A.style.height=t+"px",function(A){var e=function(A){A.stopPropagation(),A.preventDefault()};A.addEventListener("dragover",e,!1),A.addEventListener("dragleave",e,!1),A.addEventListener("drop",(function(e){e.stopPropagation(),e.preventDefault();var t=e.dataTransfer.files[0],r=new FileReader;r.onload=function(){N(r.result,A)},r.readAsDataURL(t)}),!1)}(A),m(A),F.setSize(r,t),F.setBackground(n),A.appendChild(F.getDom()),B)if(B[i]){var s=B[i];N(s.imageUrl,A,s)}for(var i in o)if(o[i]){var a=o[i];R(A,a)}};t(1);document.addEventListener("collageExport",(function(A){console.log(A.detail)})),document.addEventListener("collageImport",(function(A){L(document.getElementById("root"),A.detail)})),document.dispatchEvent(new CustomEvent("collageImport",{detail:{applicationHeight:600,applicationWidth:800,backgroundImageUrl:"data:image/jpeg;base64,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",iconsWithText:{},images:{}}}))}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2h0bWwyY2FudmFzL2Rpc3QvaHRtbDJjYW52YXMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3N0eWxlLmNzcz83MTYzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc3R5bGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tYnJvd3Nlci9ybmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3V1aWQvZGlzdC9lc20tYnJvd3Nlci9ieXRlc1RvVXVpZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdXVpZC9kaXN0L2VzbS1icm93c2VyL3Y0LmpzIiwid2VicGFjazovLy8uL3NyYy9EYXRhU3RvcmUudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2FudmFzLnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0JhY2tncm91bmQudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29udGV4dE1lbnUudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbldpdGhUZXh0LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vdmFibGVFbGVtZW50cy50cyIsIndlYnBhY2s6Ly8vLi9zcmMvQXBwLnRzIiwid2VicGFjazovLy8uL3NyYy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvZ2xvYmFsQ29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJleHBvcnRzIiwibW9kdWxlIiwiaSIsImwiLCJtb2R1bGVzIiwiY2FsbCIsIm0iLCJjIiwiZCIsIm5hbWUiLCJnZXR0ZXIiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJ0IiwibW9kZSIsIl9fZXNNb2R1bGUiLCJucyIsImNyZWF0ZSIsImtleSIsImJpbmQiLCJuIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiZXh0ZW5kU3RhdGljcyIsImIiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIkFycmF5IiwiX19leHRlbmRzIiwiX18iLCJ0aGlzIiwiY29uc3RydWN0b3IiLCJfX2Fzc2lnbiIsImFzc2lnbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiX19nZW5lcmF0b3IiLCJib2R5IiwiZiIsInkiLCJnIiwiXyIsImxhYmVsIiwic2VudCIsInRyeXMiLCJvcHMiLCJ2ZXJiIiwiaXRlcmF0b3IiLCJ2Iiwib3AiLCJUeXBlRXJyb3IiLCJwb3AiLCJwdXNoIiwiQm91bmRzIiwieCIsInciLCJoIiwibGVmdCIsInRvcCIsIndpZHRoIiwiaGVpZ2h0IiwiYWRkIiwiZnJvbUNsaWVudFJlY3QiLCJjbGllbnRSZWN0IiwicGFyc2VCb3VuZHMiLCJub2RlIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidG9Db2RlUG9pbnRzIiwic3RyIiwiY29kZVBvaW50cyIsImNoYXJDb2RlQXQiLCJleHRyYSIsImZyb21Db2RlUG9pbnQiLCJfaSIsIlN0cmluZyIsImNvZGVVbml0cyIsImluZGV4IiwiY29kZVBvaW50IiwiZnJvbUNoYXJDb2RlIiwiY2hhcnMiLCJsb29rdXAiLCJVaW50OEFycmF5IiwiVG9rZW5UeXBlIiwic2xpY2UxNiIsInZpZXciLCJzdGFydCIsImVuZCIsInNsaWNlIiwiVWludDE2QXJyYXkiLCJUcmllIiwiaW5pdGlhbFZhbHVlIiwiZXJyb3JWYWx1ZSIsImhpZ2hTdGFydCIsImhpZ2hWYWx1ZUluZGV4IiwiZGF0YSIsIml4IiwiVVRSSUUyX0RBVEFfQkxPQ0tfTEVOR1RIIiwiVVRSSUUyX0lOREVYXzFfT0ZGU0VUIiwiVVRSSUUyX0lOREVYXzJfQkxPQ0tfTEVOR1RIIiwiU1AiLCJCQSIsIkhZIiwiQ0wiLCJDUCIsIkVYIiwiSU4iLCJOUyIsIk9QIiwiSVMiLCJOVSIsIlBPIiwiUFIiLCJTWSIsIkFMIiwiRUIiLCJFTSIsIkgyIiwiSDMiLCJJRCIsIkpMIiwiSlYiLCJKVCIsIlNBIiwiVW5pY29kZVRyaWUiLCJiYXNlNjQiLCJidWZmZXIiLCJlbmNvZGVkMSIsImVuY29kZWQyIiwiZW5jb2RlZDMiLCJlbmNvZGVkNCIsImJ1ZmZlckxlbmd0aCIsImxlbiIsIkFycmF5QnVmZmVyIiwiYnl0ZXMiLCJpc0FycmF5IiwiZGVjb2RlIiwidmlldzMyIiwicG9seVVpbnQzMkFycmF5IiwiVWludDMyQXJyYXkiLCJ2aWV3MTYiLCJwb2x5VWludDE2QXJyYXkiLCJoZWFkZXJMZW5ndGgiLCJNYXRoIiwiY2VpbCIsImNyZWF0ZVRyaWVGcm9tQmFzZTY0IiwiQUxQSEFCRVRJQ1MiLCJIQVJEX0xJTkVfQlJFQUtTIiwiU1BBQ0UiLCJQUkVGSVhfUE9TVEZJWCIsIkxJTkVfQlJFQUtTIiwiY29uY2F0IiwiS09SRUFOX1NZTExBQkxFX0JMT0NLIiwiSFlQSEVOIiwiaXNBZGphY2VudFdpdGhTcGFjZUlnbm9yZWQiLCJhIiwiY3VycmVudEluZGV4IiwiY2xhc3NUeXBlcyIsImN1cnJlbnQiLCJpbmRleE9mIiwicHJldiIsInByZXZpb3VzTm9uU3BhY2VDbGFzc1R5cGUiLCJ0eXBlIiwiX2xpbmVCcmVha0F0SW5kZXgiLCJpbmRpY2llcyIsImZvcmJpZGRlbkJyZWFrcyIsImJlZm9yZUluZGV4IiwiYWZ0ZXJJbmRleCIsImJlZm9yZSIsInByZXZJbmRleCIsImNvdW50IiwiY3NzRm9ybWF0dGVkQ2xhc3NlcyIsIm9wdGlvbnMiLCJsaW5lQnJlYWsiLCJ3b3JkQnJlYWsiLCJfYSIsInR5cGVzIiwiY2F0ZWdvcmllcyIsImZvckVhY2giLCJjbGFzc1R5cGUiLCJjb2RlUG9pbnRzVG9DaGFyYWN0ZXJDbGFzc2VzIiwiaXNMZXR0ZXJOdW1iZXIiLCJtYXAiLCJsZXR0ZXJOdW1iZXIiLCJ1bmRlZmluZWQiLCJCcmVhayIsInJlcXVpcmVkIiwiaXNEaWdpdCIsImlzSGV4IiwiaXNXaGl0ZVNwYWNlIiwiaXNOYW1lU3RhcnRDb2RlUG9pbnQiLCJpc0xvd2VyQ2FzZUxldHRlciIsImlzVXBwZXJDYXNlTGV0dGVyIiwiaXNMZXR0ZXIiLCJpc05vbkFTQ0lJQ29kZVBvaW50IiwiaXNOYW1lQ29kZVBvaW50IiwiaXNOb25QcmludGFibGVDb2RlUG9pbnQiLCJpc1ZhbGlkRXNjYXBlIiwiYzEiLCJjMiIsImlzSWRlbnRpZmllclN0YXJ0IiwiYzMiLCJpc051bWJlclN0YXJ0Iiwic3RyaW5nVG9OdW1iZXIiLCJzaWduIiwiaW50ZWdlcnMiLCJpbnQiLCJwYXJzZUludCIsImZyYWN0aW9uIiwiZnJhY2QiLCJmcmFjIiwiZXhwc2lnbiIsImV4cG9uZW50IiwiZXhwIiwicG93IiwiTEVGVF9QQVJFTlRIRVNJU19UT0tFTiIsIlJJR0hUX1BBUkVOVEhFU0lTX1RPS0VOIiwiQ09NTUFfVE9LRU4iLCJTVUZGSVhfTUFUQ0hfVE9LRU4iLCJQUkVGSVhfTUFUQ0hfVE9LRU4iLCJDT0xVTU5fVE9LRU4iLCJEQVNIX01BVENIX1RPS0VOIiwiSU5DTFVERV9NQVRDSF9UT0tFTiIsIkxFRlRfQ1VSTFlfQlJBQ0tFVF9UT0tFTiIsIlJJR0hUX0NVUkxZX0JSQUNLRVRfVE9LRU4iLCJTVUJTVFJJTkdfTUFUQ0hfVE9LRU4iLCJCQURfVVJMX1RPS0VOIiwiQkFEX1NUUklOR19UT0tFTiIsIkNET19UT0tFTiIsIkNEQ19UT0tFTiIsIkNPTE9OX1RPS0VOIiwiU0VNSUNPTE9OX1RPS0VOIiwiTEVGVF9TUVVBUkVfQlJBQ0tFVF9UT0tFTiIsIlJJR0hUX1NRVUFSRV9CUkFDS0VUX1RPS0VOIiwiV0hJVEVTUEFDRV9UT0tFTiIsIkVPRl9UT0tFTiIsIlRva2VuaXplciIsIl92YWx1ZSIsIndyaXRlIiwiY2h1bmsiLCJyZWFkIiwidG9rZW5zIiwidG9rZW4iLCJjb25zdW1lVG9rZW4iLCJjb25zdW1lQ29kZVBvaW50IiwiY29uc3VtZVN0cmluZ1Rva2VuIiwicGVla0NvZGVQb2ludCIsImZsYWdzIiwiY29uc3VtZU5hbWUiLCJIQVNIX1RPS0VOIiwicmVjb25zdW1lQ29kZVBvaW50IiwiY29uc3VtZU51bWVyaWNUb2tlbiIsImUxIiwiZTIiLCJlMyIsImNvbnN1bWVJZGVudExpa2VUb2tlbiIsImExIiwiYTIiLCJhMyIsIkFUX0tFWVdPUkRfVE9LRU4iLCJ1MSIsInUyIiwiY29uc3VtZVVuaWNvZGVSYW5nZVRva2VuIiwiY29uc3VtZVdoaXRlU3BhY2UiLCJERUxJTV9UT0tFTiIsInNoaWZ0IiwidW5zaGlmdCIsImRlbHRhIiwiZGlnaXRzIiwicXVlc3Rpb25NYXJrcyIsInN0YXJ0XzEiLCJkaWdpdCIsIlVOSUNPREVfUkFOR0VfVE9LRU4iLCJlbmREaWdpdHMiLCJ0b0xvd2VyQ2FzZSIsImNvbnN1bWVVcmxUb2tlbiIsIkZVTkNUSU9OX1RPS0VOIiwiSURFTlRfVE9LRU4iLCJVUkxfVE9LRU4iLCJzdHJpbmdUb2tlbiIsIlNUUklOR19UT0tFTiIsImNvbnN1bWVCYWRVcmxSZW1uYW50cyIsImNvbnN1bWVFc2NhcGVkQ29kZVBvaW50IiwiY29uc3VtZVN0cmluZ1NsaWNlIiwiYW1vdW50IiwibWluIiwic3BsaWNlIiwiZW5kaW5nQ29kZVBvaW50IiwiY29uc3VtZU51bWJlciIsInJlcHIiLCJudW1iZXIiLCJ1bml0IiwiRElNRU5TSU9OX1RPS0VOIiwiUEVSQ0VOVEFHRV9UT0tFTiIsIk5VTUJFUl9UT0tFTiIsImhleCIsImhleENvZGVQb2ludCIsImlzU3Vycm9nYXRlQ29kZVBvaW50IiwiUGFyc2VyIiwiX3Rva2VucyIsInRva2VuaXplciIsInBhcnNlVmFsdWUiLCJwYXJzZUNvbXBvbmVudFZhbHVlIiwicGFyc2VWYWx1ZXMiLCJwYXJzZUNvbXBvbmVudFZhbHVlcyIsIlN5bnRheEVycm9yIiwicmVjb25zdW1lVG9rZW4iLCJjb25zdW1lQ29tcG9uZW50VmFsdWUiLCJ2YWx1ZXMiLCJjb25zdW1lU2ltcGxlQmxvY2siLCJjb25zdW1lRnVuY3Rpb24iLCJibG9jayIsImlzRW5kaW5nVG9rZW5Gb3IiLCJmdW5jdGlvblRva2VuIiwiY3NzRnVuY3Rpb24iLCJGVU5DVElPTiIsImlzRGltZW5zaW9uVG9rZW4iLCJpc051bWJlclRva2VuIiwiaXNJZGVudFRva2VuIiwiaXNTdHJpbmdUb2tlbiIsImlzSWRlbnRXaXRoVmFsdWUiLCJub25XaGl0ZVNwYWNlIiwibm9uRnVuY3Rpb25BcmdTZXBhcmF0b3IiLCJwYXJzZUZ1bmN0aW9uQXJncyIsImFyZ3MiLCJhcmciLCJFcnJvciIsImlzTGVuZ3RoIiwiaXNMZW5ndGhQZXJjZW50YWdlIiwicGFyc2VMZW5ndGhQZXJjZW50YWdlVHVwbGUiLCJaRVJPX0xFTkdUSCIsIkZJRlRZX1BFUkNFTlQiLCJIVU5EUkVEX1BFUkNFTlQiLCJnZXRBYnNvbHV0ZVZhbHVlRm9yVHVwbGUiLCJ0dXBsZSIsImdldEFic29sdXRlVmFsdWUiLCJwYXJlbnQiLCJhbmdsZSIsIlBJIiwiaXNBbmdsZSIsInBhcnNlTmFtZWRTaWRlIiwiZmlsdGVyIiwiaWRlbnQiLCJqb2luIiwiZGVnIiwiY29sb3IiLCJjb2xvckZ1bmN0aW9uIiwiU1VQUE9SVEVEX0NPTE9SX0ZVTkNUSU9OUyIsInN1YnN0cmluZyIsInBhY2siLCJuYW1lZENvbG9yIiwiQ09MT1JTIiwidG9VcHBlckNhc2UiLCJUUkFOU1BBUkVOVCIsImlzVHJhbnNwYXJlbnQiLCJhc1N0cmluZyIsImFscGhhIiwiYmx1ZSIsImdyZWVuIiwicmVkIiwicm91bmQiLCJnZXRUb2tlbkNvbG9yVmFsdWUiLCJtYXgiLCJyZ2IiLCJfYiIsImh1ZTJyZ2IiLCJ0MSIsInQyIiwiaHVlIiwiUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUiLCJCQUNLR1JPVU5EX0NMSVAiLCJoc2wiLCJzYXR1cmF0aW9uIiwibGlnaHRuZXNzIiwiaHNsYSIsInJnYmEiLCJBTElDRUJMVUUiLCJBTlRJUVVFV0hJVEUiLCJBUVVBIiwiQVFVQU1BUklORSIsIkFaVVJFIiwiQkVJR0UiLCJCSVNRVUUiLCJCTEFDSyIsIkJMQU5DSEVEQUxNT05EIiwiQkxVRSIsIkJMVUVWSU9MRVQiLCJCUk9XTiIsIkJVUkxZV09PRCIsIkNBREVUQkxVRSIsIkNIQVJUUkVVU0UiLCJDSE9DT0xBVEUiLCJDT1JBTCIsIkNPUk5GTE9XRVJCTFVFIiwiQ09STlNJTEsiLCJDUklNU09OIiwiQ1lBTiIsIkRBUktCTFVFIiwiREFSS0NZQU4iLCJEQVJLR09MREVOUk9EIiwiREFSS0dSQVkiLCJEQVJLR1JFRU4iLCJEQVJLR1JFWSIsIkRBUktLSEFLSSIsIkRBUktNQUdFTlRBIiwiREFSS09MSVZFR1JFRU4iLCJEQVJLT1JBTkdFIiwiREFSS09SQ0hJRCIsIkRBUktSRUQiLCJEQVJLU0FMTU9OIiwiREFSS1NFQUdSRUVOIiwiREFSS1NMQVRFQkxVRSIsIkRBUktTTEFURUdSQVkiLCJEQVJLU0xBVEVHUkVZIiwiREFSS1RVUlFVT0lTRSIsIkRBUktWSU9MRVQiLCJERUVQUElOSyIsIkRFRVBTS1lCTFVFIiwiRElNR1JBWSIsIkRJTUdSRVkiLCJET0RHRVJCTFVFIiwiRklSRUJSSUNLIiwiRkxPUkFMV0hJVEUiLCJGT1JFU1RHUkVFTiIsIkZVQ0hTSUEiLCJHQUlOU0JPUk8iLCJHSE9TVFdISVRFIiwiR09MRCIsIkdPTERFTlJPRCIsIkdSQVkiLCJHUkVFTiIsIkdSRUVOWUVMTE9XIiwiR1JFWSIsIkhPTkVZREVXIiwiSE9UUElOSyIsIklORElBTlJFRCIsIklORElHTyIsIklWT1JZIiwiS0hBS0kiLCJMQVZFTkRFUiIsIkxBVkVOREVSQkxVU0giLCJMQVdOR1JFRU4iLCJMRU1PTkNISUZGT04iLCJMSUdIVEJMVUUiLCJMSUdIVENPUkFMIiwiTElHSFRDWUFOIiwiTElHSFRHT0xERU5ST0RZRUxMT1ciLCJMSUdIVEdSQVkiLCJMSUdIVEdSRUVOIiwiTElHSFRHUkVZIiwiTElHSFRQSU5LIiwiTElHSFRTQUxNT04iLCJMSUdIVFNFQUdSRUVOIiwiTElHSFRTS1lCTFVFIiwiTElHSFRTTEFURUdSQVkiLCJMSUdIVFNMQVRFR1JFWSIsIkxJR0hUU1RFRUxCTFVFIiwiTElHSFRZRUxMT1ciLCJMSU1FIiwiTElNRUdSRUVOIiwiTElORU4iLCJNQUdFTlRBIiwiTUFST09OIiwiTUVESVVNQVFVQU1BUklORSIsIk1FRElVTUJMVUUiLCJNRURJVU1PUkNISUQiLCJNRURJVU1QVVJQTEUiLCJNRURJVU1TRUFHUkVFTiIsIk1FRElVTVNMQVRFQkxVRSIsIk1FRElVTVNQUklOR0dSRUVOIiwiTUVESVVNVFVSUVVPSVNFIiwiTUVESVVNVklPTEVUUkVEIiwiTUlETklHSFRCTFVFIiwiTUlOVENSRUFNIiwiTUlTVFlST1NFIiwiTU9DQ0FTSU4iLCJOQVZBSk9XSElURSIsIk5BVlkiLCJPTERMQUNFIiwiT0xJVkUiLCJPTElWRURSQUIiLCJPUkFOR0UiLCJPUkFOR0VSRUQiLCJPUkNISUQiLCJQQUxFR09MREVOUk9EIiwiUEFMRUdSRUVOIiwiUEFMRVRVUlFVT0lTRSIsIlBBTEVWSU9MRVRSRUQiLCJQQVBBWUFXSElQIiwiUEVBQ0hQVUZGIiwiUEVSVSIsIlBJTksiLCJQTFVNIiwiUE9XREVSQkxVRSIsIlBVUlBMRSIsIlJFQkVDQ0FQVVJQTEUiLCJSRUQiLCJST1NZQlJPV04iLCJST1lBTEJMVUUiLCJTQURETEVCUk9XTiIsIlNBTE1PTiIsIlNBTkRZQlJPV04iLCJTRUFHUkVFTiIsIlNFQVNIRUxMIiwiU0lFTk5BIiwiU0lMVkVSIiwiU0tZQkxVRSIsIlNMQVRFQkxVRSIsIlNMQVRFR1JBWSIsIlNMQVRFR1JFWSIsIlNOT1ciLCJTUFJJTkdHUkVFTiIsIlNURUVMQkxVRSIsIlRBTiIsIlRFQUwiLCJUSElTVExFIiwiVE9NQVRPIiwiVFVSUVVPSVNFIiwiVklPTEVUIiwiV0hFQVQiLCJXSElURSIsIldISVRFU01PS0UiLCJZRUxMT1ciLCJZRUxMT1dHUkVFTiIsIkNTU0ltYWdlVHlwZSIsIkNTU1JhZGlhbFNoYXBlIiwiQ1NTUmFkaWFsRXh0ZW50IiwiYmFja2dyb3VuZENsaXAiLCJwcmVmaXgiLCJMSVNUIiwicGFyc2UiLCJQQURESU5HX0JPWCIsIkNPTlRFTlRfQk9YIiwiQk9SREVSX0JPWCIsImJhY2tncm91bmRDb2xvciIsIlRZUEVfVkFMVUUiLCJmb3JtYXQiLCJwYXJzZUNvbG9yU3RvcCIsImNvbG9yJDEiLCJzdG9wIiwicHJvY2Vzc0NvbG9yU3RvcHMiLCJzdG9wcyIsImxpbmVMZW5ndGgiLCJmaXJzdCIsImxhc3QiLCJwcm9jZXNzU3RvcHMiLCJwcmV2aW91cyIsInN0b3BfMSIsImFic29sdXRlVmFsdWUiLCJnYXBCZWdpbiIsInN0b3BfMiIsImdhcExlbmd0aCIsImdhcFZhbHVlIiwiY2FsY3VsYXRlR3JhZGllbnREaXJlY3Rpb24iLCJyYWRpYW4iLCJjb3JuZXIiLCJjZW50ZXJYIiwiY2VudGVyWSIsImF0YW4yIiwiZ2V0QW5nbGVGcm9tQ29ybmVyIiwiYWJzIiwic2luIiwiY29zIiwiaGFsZldpZHRoIiwiaGFsZkhlaWdodCIsImhhbGZMaW5lTGVuZ3RoIiwieURpZmYiLCJ4RGlmZiIsImRpc3RhbmNlIiwic3FydCIsImZpbmRDb3JuZXIiLCJjbG9zZXN0IiwicmVkdWNlIiwic3RhdCIsImN4IiwiY3kiLCJvcHRpbXVtRGlzdGFuY2UiLCJvcHRpbXVtQ29ybmVyIiwiSW5maW5pdHkiLCJwcmVmaXhMaW5lYXJHcmFkaWVudCIsImFuZ2xlJDEiLCJmaXJzdFRva2VuIiwiY29sb3JTdG9wIiwiTElORUFSX0dSQURJRU5UIiwiaXNHcmVlblBpeGVsIiwiY3JlYXRlRm9yZWlnbk9iamVjdFNWRyIsInhtbG5zIiwic3ZnIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50TlMiLCJmb3JlaWduT2JqZWN0Iiwic2V0QXR0cmlidXRlTlMiLCJ0b1N0cmluZyIsImFwcGVuZENoaWxkIiwibG9hZFNlcmlhbGl6ZWRTVkciLCJpbWciLCJJbWFnZSIsIm9ubG9hZCIsIm9uZXJyb3IiLCJzcmMiLCJlbmNvZGVVUklDb21wb25lbnQiLCJYTUxTZXJpYWxpemVyIiwic2VyaWFsaXplVG9TdHJpbmciLCJGRUFUVVJFUyIsImNyZWF0ZVJhbmdlIiwicmFuZ2UiLCJ0ZXN0RWxlbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIlRFU1RfSEVJR0hUIiwiZGlzcGxheSIsInNlbGVjdE5vZGUiLCJyYW5nZUJvdW5kcyIsInJhbmdlSGVpZ2h0IiwicmVtb3ZlQ2hpbGQiLCJ0ZXN0UmFuZ2VCb3VuZHMiLCJjYW52YXMiLCJjdHgiLCJnZXRDb250ZXh0IiwiZHJhd0ltYWdlIiwidG9EYXRhVVJMIiwidGVzdFNWRyIsImZyb20iLCJ3aW5kb3ciLCJmZXRjaCIsImZpbGxTdHlsZSIsImZpbGxSZWN0IiwiZ3JlZW5JbWFnZVNyYyIsImdldEltYWdlRGF0YSIsImJhY2tncm91bmRJbWFnZSIsInNpemUiLCJjYXRjaCIsInRlc3RGb3JlaWduT2JqZWN0IiwiY3Jvc3NPcmlnaW4iLCJYTUxIdHRwUmVxdWVzdCIsInJlc3BvbnNlVHlwZSIsIkxvZ2dlciIsImlkIiwiZW5hYmxlZCIsIkRhdGUiLCJub3ciLCJkZWJ1ZyIsImNvbnNvbGUiLCJnZXRUaW1lIiwiaW5mbyIsImluc3RhbmNlcyIsImRlc3Ryb3kiLCJnZXRJbnN0YW5jZSIsImluc3RhbmNlIiwiZXJyb3IiLCJDYWNoZVN0b3JhZ2UiLCJfY2FjaGVzIiwiQ2FjaGUiLCJvcGVuIiwiY2FjaGUiLCJnZXRPcmlnaW4iLCJ1cmwiLCJsaW5rIiwiX2xpbmsiLCJocmVmIiwicHJvdG9jb2wiLCJob3N0bmFtZSIsInBvcnQiLCJpc1NhbWVPcmlnaW4iLCJfb3JpZ2luIiwic2V0Q29udGV4dCIsImxvY2F0aW9uIiwiX2N1cnJlbnQiLCJhdHRhY2hJbnN0YW5jZSIsImRldGFjaEluc3RhbmNlIiwiX29wdGlvbnMiLCJfY2FjaGUiLCJhZGRJbWFnZSIsImhhcyIsImlzQmxvYkltYWdlIiwiaXNSZW5kZXJhYmxlIiwibG9hZEltYWdlIiwibWF0Y2giLCJ1c2VDT1JTIiwidXNlUHJveHkiLCJfdGhpcyIsImlzSW5saW5lSW1hZ2UiLCJTVVBQT1JUX0NPUlNfSU1BR0VTIiwicHJveHkiLCJTVVBQT1JUX0NPUlNfWEhSIiwiYWxsb3dUYWludCIsImlzSW5saW5lQmFzZTY0SW1hZ2UiLCJjb21wbGV0ZSIsInNldFRpbWVvdXQiLCJpbWFnZVRpbWVvdXQiLCJrZXlzIiwiU1VQUE9SVF9SRVNQT05TRV9UWVBFIiwieGhyIiwic3RhdHVzIiwicmVzcG9uc2UiLCJyZWFkZXJfMSIsIkZpbGVSZWFkZXIiLCJhZGRFdmVudExpc3RlbmVyIiwicmVhZEFzRGF0YVVSTCIsInRpbWVvdXRfMSIsInRpbWVvdXQiLCJvbnRpbWVvdXQiLCJzZW5kIiwiSU5MSU5FX1NWRyIsIklOTElORV9CQVNFNjQiLCJJTkxJTkVfSU1HIiwiU1VQUE9SVF9TVkdfRFJBV0lORyIsImlzU1ZHIiwidGVzdCIsInN1YnN0ciIsInByZWZpeFJhZGlhbEdyYWRpZW50Iiwic2hhcGUiLCJDSVJDTEUiLCJGQVJUSEVTVF9DT1JORVIiLCJwb3NpdGlvbiIsImlzQ29sb3JTdG9wIiwiYWNjIiwiRUxMSVBTRSIsIkNMT1NFU1RfU0lERSIsIkZBUlRIRVNUX1NJREUiLCJDTE9TRVNUX0NPUk5FUiIsIlJBRElBTF9HUkFESUVOVCIsIkJBQ0tHUk9VTkRfUkVQRUFUIiwiaW1hZ2UiLCJpbWFnZV8xIiwiVVJMIiwiaW1hZ2VGdW5jdGlvbiIsIlNVUFBPUlRFRF9JTUFHRV9GVU5DVElPTlMiLCJpc0F0UG9zaXRpb25fMSIsImlzU3VwcG9ydGVkSW1hZ2UiLCJiYWNrZ3JvdW5kT3JpZ2luIiwiYmFja2dyb3VuZFBvc2l0aW9uIiwiQkFDS0dST1VORF9TSVpFIiwiYmFja2dyb3VuZFJlcGVhdCIsInBhcnNlQmFja2dyb3VuZFJlcGVhdCIsIk5PX1JFUEVBVCIsIlJFUEVBVF9YIiwiUkVQRUFUX1kiLCJSRVBFQVQiLCJCT1JERVJfU1RZTEUiLCJiYWNrZ3JvdW5kU2l6ZSIsImlzQmFja2dyb3VuZFNpemVJbmZvVG9rZW4iLCJib3JkZXJDb2xvckZvclNpZGUiLCJzaWRlIiwiYm9yZGVyVG9wQ29sb3IiLCJib3JkZXJSaWdodENvbG9yIiwiYm9yZGVyQm90dG9tQ29sb3IiLCJib3JkZXJMZWZ0Q29sb3IiLCJib3JkZXJSYWRpdXNGb3JTaWRlIiwiYm9yZGVyVG9wTGVmdFJhZGl1cyIsImJvcmRlclRvcFJpZ2h0UmFkaXVzIiwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMiLCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzIiwiRkxPQVQiLCJib3JkZXJTdHlsZUZvclNpZGUiLCJJREVOVF9WQUxVRSIsIk5PTkUiLCJTT0xJRCIsImJvcmRlclRvcFN0eWxlIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyV2lkdGhGb3JTaWRlIiwiVkFMVUUiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckxlZnRXaWR0aCIsImJpdCIsInBhcnNlRGlzcGxheVZhbHVlIiwiTElORV9CUkVBSyIsImZsb2F0IiwiTEVGVCIsIlJJR0hUIiwiSU5MSU5FX1NUQVJUIiwiSU5MSU5FX0VORCIsImxldHRlclNwYWNpbmciLCJMSVNUX1NUWUxFX1BPU0lUSU9OIiwiU1RSSUNUIiwiTk9STUFMIiwibGluZUhlaWdodCIsIlRPS0VOX1ZBTFVFIiwibGlzdFN0eWxlSW1hZ2UiLCJMSVNUX1NUWUxFX1RZUEUiLCJsaXN0U3R5bGVQb3NpdGlvbiIsIklOU0lERSIsIk9VVFNJREUiLCJPVkVSRkxPVyIsImxpc3RTdHlsZVR5cGUiLCJESVNDIiwiU1FVQVJFIiwiREVDSU1BTCIsIkNKS19ERUNJTUFMIiwiREVDSU1BTF9MRUFESU5HX1pFUk8iLCJMT1dFUl9ST01BTiIsIlVQUEVSX1JPTUFOIiwiTE9XRVJfR1JFRUsiLCJMT1dFUl9BTFBIQSIsIlVQUEVSX0FMUEhBIiwiQVJBQklDX0lORElDIiwiQVJNRU5JQU4iLCJCRU5HQUxJIiwiQ0FNQk9ESUFOIiwiQ0pLX0VBUlRITFlfQlJBTkNIIiwiQ0pLX0hFQVZFTkxZX1NURU0iLCJDSktfSURFT0dSQVBISUMiLCJERVZBTkFHQVJJIiwiRVRISU9QSUNfTlVNRVJJQyIsIkdFT1JHSUFOIiwiR1VKQVJBVEkiLCJHVVJNVUtISSIsIkhFQlJFVyIsIkhJUkFHQU5BIiwiSElSQUdBTkFfSVJPSEEiLCJKQVBBTkVTRV9GT1JNQUwiLCJKQVBBTkVTRV9JTkZPUk1BTCIsIktBTk5BREEiLCJLQVRBS0FOQSIsIktBVEFLQU5BX0lST0hBIiwiS0hNRVIiLCJLT1JFQU5fSEFOR1VMX0ZPUk1BTCIsIktPUkVBTl9IQU5KQV9GT1JNQUwiLCJLT1JFQU5fSEFOSkFfSU5GT1JNQUwiLCJMQU8iLCJMT1dFUl9BUk1FTklBTiIsIk1BTEFZQUxBTSIsIk1PTkdPTElBTiIsIk1ZQU5NQVIiLCJPUklZQSIsIlBFUlNJQU4iLCJTSU1QX0NISU5FU0VfRk9STUFMIiwiU0lNUF9DSElORVNFX0lORk9STUFMIiwiVEFNSUwiLCJURUxVR1UiLCJUSEFJIiwiVElCRVRBTiIsIlRSQURfQ0hJTkVTRV9GT1JNQUwiLCJUUkFEX0NISU5FU0VfSU5GT1JNQUwiLCJVUFBFUl9BUk1FTklBTiIsIkRJU0NMT1NVUkVfT1BFTiIsIkRJU0NMT1NVUkVfQ0xPU0VEIiwibWFyZ2luRm9yU2lkZSIsIm1hcmdpblRvcCIsIm1hcmdpblJpZ2h0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luTGVmdCIsIk9WRVJGTE9XX1dSQVAiLCJvdmVyZmxvdyIsIkhJRERFTiIsIlNDUk9MTCIsIkFVVE8iLCJWSVNJQkxFIiwiVEVYVF9BTElHTiIsIm92ZXJmbG93V3JhcCIsIkJSRUFLX1dPUkQiLCJwYWRkaW5nRm9yU2lkZSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nUmlnaHQiLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZ0xlZnQiLCJQT1NJVElPTiIsInRleHRBbGlnbiIsIkNFTlRFUiIsIlRFWFRfVFJBTlNGT1JNIiwiUkVMQVRJVkUiLCJBQlNPTFVURSIsIkZJWEVEIiwiU1RJQ0tZIiwiU1RBVElDIiwidGV4dFNoYWRvdyIsInNoYWRvdyIsIm9mZnNldFgiLCJvZmZzZXRZIiwiYmx1ciIsIlZJU0lCSUxJVFkiLCJ0ZXh0VHJhbnNmb3JtIiwiVVBQRVJDQVNFIiwiTE9XRVJDQVNFIiwiQ0FQSVRBTElaRSIsInRyYW5zZm9ybSIsInRyYW5zZm9ybUZ1bmN0aW9uIiwiU1VQUE9SVEVEX1RSQU5TRk9STV9GVU5DVElPTlMiLCJtYXRyaXgiLCJtYXRyaXgzZCIsImIxIiwiYjIiLCJhNCIsImI0IiwiREVGQVVMVF9WQUxVRSIsIkRFRkFVTFQiLCJ0cmFuc2Zvcm1PcmlnaW4iLCJvcmlnaW5zIiwiV09SRF9CUkVBSyIsInZpc2liaWxpdHkiLCJDT0xMQVBTRSIsIkZPTlRfU1RZTEUiLCJCUkVBS19BTEwiLCJLRUVQX0FMTCIsInpJbmRleCIsImF1dG8iLCJvcmRlciIsIm9wYWNpdHkiLCJ0ZXh0RGVjb3JhdGlvbkNvbG9yIiwidGV4dERlY29yYXRpb25MaW5lIiwibGluZSIsImZvbnRGYW1pbHkiLCJpc1N0cmluZ1Rva2VuJDEiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJmb250VmFyaWFudCIsIlBzZXVkb0VsZW1lbnRUeXBlIiwiZm9udFN0eWxlIiwiT0JMSVFVRSIsIklUQUxJQyIsImNvbnRhaW5zIiwiY29udGVudCIsImNvdW50ZXJJbmNyZW1lbnQiLCJpbmNyZW1lbnRzIiwiZmlsdGVyZWQiLCJjb3VudGVyIiwiaW5jcmVtZW50IiwiY291bnRlclJlc2V0IiwicmVzZXRzIiwicmVzZXQiLCJxdW90ZXMiLCJvcGVuXzEiLCJjbG9zZV8xIiwiY2xvc2UiLCJnZXRRdW90ZSIsImRlcHRoIiwicXVvdGUiLCJib3hTaGFkb3ciLCJzcHJlYWQiLCJpbnNldCIsIkNTU1BhcnNlZERlY2xhcmF0aW9uIiwiZGVjbGFyYXRpb24iLCJjc3NGbG9hdCIsIm92ZXJmbG93VHVwbGUiLCJvdmVyZmxvd1giLCJvdmVyZmxvd1kiLCJpc1Zpc2libGUiLCJpc1RyYW5zZm9ybWVkIiwiaXNQb3NpdGlvbmVkIiwiaXNQb3NpdGlvbmVkV2l0aFpJbmRleCIsImlzRmxvYXRpbmciLCJpc0lubGluZUxldmVsIiwiQ1NTUGFyc2VkUHNldWRvRGVjbGFyYXRpb24iLCJDU1NQYXJzZWRDb3VudGVyRGVjbGFyYXRpb24iLCJkZXNjcmlwdG9yIiwicGFyc2VyIiwibGVuZ3RoXzEiLCJ2YWx1ZV8xIiwiRWxlbWVudENvbnRhaW5lciIsImVsZW1lbnQiLCJzdHlsZXMiLCJnZXRDb21wdXRlZFN0eWxlIiwidGV4dE5vZGVzIiwiZWxlbWVudHMiLCJpc0hUTUxFbGVtZW50Tm9kZSIsImJvdW5kcyIsIlRleHRCb3VuZHMiLCJ0ZXh0IiwiZ2V0V3JhcHBlckJvdW5kcyIsIm93bmVyRG9jdW1lbnQiLCJ3cmFwcGVyIiwiY2xvbmVOb2RlIiwicGFyZW50Tm9kZSIsInJlcGxhY2VDaGlsZCIsImZpcnN0Q2hpbGQiLCJnZXRSYW5nZUJvdW5kcyIsIm9mZnNldCIsInNldFN0YXJ0Iiwic2V0RW5kIiwiYnJlYWtUZXh0IiwiYnJlYWtXb3JkcyIsImJrIiwiYnJlYWtlciIsImZvcmJpZGRlbkJyZWFrcG9pbnRzIiwibGFzdEVuZCIsIm5leHRJbmRleCIsIkxpbmVCcmVha2VyIiwid29yZHMiLCJUZXh0Q29udGFpbmVyIiwidHJhbnNmb3JtJDEiLCJ0ZXh0Qm91bmRzIiwidGV4dExpc3QiLCJ0cmltIiwiU1VQUE9SVF9SQU5HRV9CT1VORFMiLCJyZXBsYWNlbWVudE5vZGUiLCJzcGxpdFRleHQiLCJwYXJzZVRleHRCb3VuZHMiLCJyZXBsYWNlIiwiY2FwaXRhbGl6ZSIsInAxIiwicDIiLCJJbWFnZUVsZW1lbnRDb250YWluZXIiLCJfc3VwZXIiLCJjdXJyZW50U3JjIiwiaW50cmluc2ljV2lkdGgiLCJuYXR1cmFsV2lkdGgiLCJpbnRyaW5zaWNIZWlnaHQiLCJuYXR1cmFsSGVpZ2h0IiwiQ2FudmFzRWxlbWVudENvbnRhaW5lciIsIlNWR0VsZW1lbnRDb250YWluZXIiLCJiYXNlVmFsIiwiTElFbGVtZW50Q29udGFpbmVyIiwiT0xFbGVtZW50Q29udGFpbmVyIiwicmV2ZXJzZWQiLCJDSEVDS0JPWF9CT1JERVJfUkFESVVTIiwiUkFESU9fQk9SREVSX1JBRElVUyIsIlBBU1NXT1JEIiwiSW5wdXRFbGVtZW50Q29udGFpbmVyIiwiaW5wdXQiLCJjaGVja2VkIiwicGxhY2Vob2xkZXIiLCJTZWxlY3RFbGVtZW50Q29udGFpbmVyIiwib3B0aW9uIiwic2VsZWN0ZWRJbmRleCIsIlRleHRhcmVhRWxlbWVudENvbnRhaW5lciIsInBhcnNlQ29sb3IiLCJJRnJhbWVFbGVtZW50Q29udGFpbmVyIiwiaWZyYW1lIiwiY29udGVudFdpbmRvdyIsImRvY3VtZW50RWxlbWVudCIsInRyZWUiLCJwYXJzZVRyZWUiLCJkb2N1bWVudEJhY2tncm91bmRDb2xvciIsImJvZHlCYWNrZ3JvdW5kQ29sb3IiLCJMSVNUX09XTkVSUyIsInBhcnNlTm9kZVRyZWUiLCJyb290IiwiY2hpbGROb2RlIiwibmV4dE5vZGUiLCJuZXh0U2libGluZyIsImlzVGV4dE5vZGUiLCJpc0VsZW1lbnROb2RlIiwiY29udGFpbmVyIiwiY3JlYXRlQ29udGFpbmVyIiwiY3JlYXRlc1JlYWxTdGFja2luZ0NvbnRleHQiLCJjcmVhdGVzU3RhY2tpbmdDb250ZXh0IiwidGFnTmFtZSIsImlzVGV4dGFyZWFFbGVtZW50IiwiaXNTVkdFbGVtZW50IiwiaXNTZWxlY3RFbGVtZW50IiwiaXNJbWFnZUVsZW1lbnQiLCJpc0NhbnZhc0VsZW1lbnQiLCJpc0xJRWxlbWVudCIsImlzT0xFbGVtZW50IiwiaXNJbnB1dEVsZW1lbnQiLCJpc0lGcmFtZUVsZW1lbnQiLCJpc0JvZHlFbGVtZW50Iiwibm9kZVR5cGUiLCJOb2RlIiwiVEVYVF9OT0RFIiwiRUxFTUVOVF9OT0RFIiwiaXNTdHlsZUVsZW1lbnQiLCJpc1NjcmlwdEVsZW1lbnQiLCJDb3VudGVyU3RhdGUiLCJjb3VudGVycyIsImdldENvdW50ZXJWYWx1ZSIsImdldENvdW50ZXJWYWx1ZXMiLCJjYW5SZXNldCIsImVudHJ5IiwiY291bnRlck5hbWVzIiwiUk9NQU5fVVBQRVIiLCJjcmVhdGVBZGRpdGl2ZUNvdW50ZXIiLCJzeW1ib2xzIiwiZmFsbGJhY2siLCJzdWZmaXgiLCJjcmVhdGVDb3VudGVyVGV4dCIsInN0cmluZyIsImludGVnZXIiLCJjcmVhdGVDb3VudGVyU3R5bGVXaXRoU3ltYm9sUmVzb2x2ZXIiLCJjb2RlUG9pbnRSYW5nZUxlbmd0aCIsImlzTnVtZXJpYyIsInJlc29sdmVyIiwiY3JlYXRlQ291bnRlclN0eWxlRnJvbVJhbmdlIiwiY29kZVBvaW50UmFuZ2VTdGFydCIsImNvZGVQb2ludFJhbmdlRW5kIiwiZmxvb3IiLCJjcmVhdGVDb3VudGVyU3R5bGVGcm9tU3ltYm9scyIsImNyZWF0ZUNKS0NvdW50ZXIiLCJudW1iZXJzIiwibXVsdGlwbGllcnMiLCJuZWdhdGl2ZVNpZ24iLCJ0bXAiLCJjb2VmZmljaWVudCIsImFwcGVuZFN1ZmZpeCIsImRlZmF1bHRTdWZmaXgiLCJjamtTdWZmaXgiLCJrb3JlYW5TdWZmaXgiLCJzcGFjZVN1ZmZpeCIsIkNKS19URU5fQ09FRkZJQ0lFTlRTIiwiQ0pLX1pFUk9TIiwiRG9jdW1lbnRDbG9uZXIiLCJzY3JvbGxlZEVsZW1lbnRzIiwicmVmZXJlbmNlRWxlbWVudCIsInF1b3RlRGVwdGgiLCJ0b0lGcmFtZSIsIndpbmRvd1NpemUiLCJjcmVhdGVJRnJhbWVDb250YWluZXIiLCJzY3JvbGxYIiwiZGVmYXVsdFZpZXciLCJwYWdlWE9mZnNldCIsInNjcm9sbFkiLCJwYWdlWU9mZnNldCIsImNsb25lV2luZG93IiwiZG9jdW1lbnRDbG9uZSIsImlmcmFtZUxvYWQiLCJpZnJhbWVMb2FkZXIiLCJvbmNsb25lIiwicmVzdG9yZU5vZGVTY3JvbGwiLCJzY3JvbGxUbyIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImNsb25lZFJlZmVyZW5jZUVsZW1lbnQiLCJub2RlTmFtZSIsImZvbnRzIiwicmVhZHkiLCJzZXJpYWxpemVEb2N0eXBlIiwiZG9jdHlwZSIsInJlc3RvcmVPd25lclNjcm9sbCIsImFkb3B0Tm9kZSIsImNyZWF0ZUVsZW1lbnRDbG9uZSIsImNyZWF0ZUNhbnZhc0Nsb25lIiwiY3JlYXRlU3R5bGVDbG9uZSIsInNoZWV0IiwiY3NzUnVsZXMiLCJjc3MiLCJydWxlIiwiY3NzVGV4dCIsInRleHRDb250ZW50IiwiaW5saW5lSW1hZ2VzIiwiY2xvbmVkQ2FudmFzIiwiY2xvbmVkQ3R4IiwicHV0SW1hZ2VEYXRhIiwiY3JlYXRlVGV4dE5vZGUiLCJjbG9uZSIsInN0eWxlQmVmb3JlIiwic3R5bGVBZnRlciIsImNyZWF0ZVBzZXVkb0hpZGVTdHlsZXMiLCJyZXNvbHZlUHNldWRvQ29udGVudCIsIkJFRk9SRSIsImNoaWxkIiwiaGFzQXR0cmlidXRlIiwiaWdub3JlRWxlbWVudHMiLCJjb3B5U3R5bGVzIiwiaW5zZXJ0QmVmb3JlIiwiYWZ0ZXIiLCJBRlRFUiIsImNvcHlDU1NTdHlsZXMiLCJzY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwicHNldWRvRWx0IiwiYW5vbnltb3VzUmVwbGFjZWRFbGVtZW50IiwiYXR0ciIsImdldEF0dHJpYnV0ZSIsImNvdW50ZXJTdHlsZSIsImNvdW50ZXJTdGF0ZSIsImNvdW50ZXJUeXBlIiwiZGVsaW0iLCJjb3VudGVyU3RhdGVzIiwiY291bnRlclR5cGVfMSIsInNlcGFyYXRvciIsImNsYXNzTmFtZSIsIlBTRVVET19ISURFX0VMRU1FTlRfQ0xBU1NfQkVGT1JFIiwiUFNFVURPX0hJREVfRUxFTUVOVF9DTEFTU19BRlRFUiIsIlBhdGhUeXBlIiwiY2xvbmVJZnJhbWVDb250YWluZXIiLCJib3JkZXIiLCJzY3JvbGxpbmciLCJzZXRBdHRyaWJ1dGUiLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwiY2hpbGROb2RlcyIsInJlYWR5U3RhdGUiLCJjbGVhckludGVydmFsIiwidGFyZ2V0IiwiaXRlbSIsInNldFByb3BlcnR5IiwiZ2V0UHJvcGVydHlWYWx1ZSIsImludGVybmFsU3Vic2V0IiwicHVibGljSWQiLCJzeXN0ZW1JZCIsImNyZWF0ZVN0eWxlcyIsIkNPUk5FUiIsImVxdWFsUGF0aCIsInNvbWUiLCJWZWN0b3IiLCJWRUNUT1IiLCJkZWx0YVgiLCJkZWx0YVkiLCJsZXJwIiwiQmV6aWVyQ3VydmUiLCJzdGFydENvbnRyb2wiLCJlbmRDb250cm9sIiwiQkVaSUVSX0NVUlZFIiwic3ViZGl2aWRlIiwiZmlyc3RIYWxmIiwiYWIiLCJiYyIsImNkIiwiYWJiYyIsImJjY2QiLCJkZXN0IiwicmV2ZXJzZSIsImlzQmV6aWVyQ3VydmUiLCJwYXRoIiwiQm91bmRDdXJ2ZXMiLCJ0bGgiLCJ0bHYiLCJ0cmgiLCJ0cnYiLCJfYyIsImJyaCIsImJydiIsIl9kIiwiYmxoIiwiYmx2IiwiZmFjdG9ycyIsIm1heEZhY3RvciIsInRvcFdpZHRoIiwicmlnaHRIZWlnaHQiLCJib3R0b21XaWR0aCIsImxlZnRIZWlnaHQiLCJ0b3BMZWZ0Qm9yZGVyQm94IiwiZ2V0Q3VydmVQb2ludHMiLCJUT1BfTEVGVCIsInRvcFJpZ2h0Qm9yZGVyQm94IiwiVE9QX1JJR0hUIiwiYm90dG9tUmlnaHRCb3JkZXJCb3giLCJCT1RUT01fUklHSFQiLCJib3R0b21MZWZ0Qm9yZGVyQm94IiwiQk9UVE9NX0xFRlQiLCJ0b3BMZWZ0UGFkZGluZ0JveCIsInRvcFJpZ2h0UGFkZGluZ0JveCIsImJvdHRvbVJpZ2h0UGFkZGluZ0JveCIsImJvdHRvbUxlZnRQYWRkaW5nQm94IiwidG9wTGVmdENvbnRlbnRCb3giLCJ0b3BSaWdodENvbnRlbnRCb3giLCJib3R0b21SaWdodENvbnRlbnRCb3giLCJib3R0b21MZWZ0Q29udGVudEJveCIsInIxIiwicjIiLCJrYXBwYSIsIm94Iiwib3kiLCJ4bSIsInltIiwiY2FsY3VsYXRlQm9yZGVyQm94UGF0aCIsImN1cnZlcyIsImNhbGN1bGF0ZVBhZGRpbmdCb3hQYXRoIiwiVHJhbnNmb3JtRWZmZWN0IiwiQ2xpcEVmZmVjdCIsIlN0YWNraW5nQ29udGV4dCIsImlubGluZUxldmVsIiwibm9uSW5saW5lTGV2ZWwiLCJuZWdhdGl2ZVpJbmRleCIsInplcm9PckF1dG9aSW5kZXhPclRyYW5zZm9ybWVkT3JPcGFjaXR5IiwicG9zaXRpdmVaSW5kZXgiLCJub25Qb3NpdGlvbmVkRmxvYXRzIiwibm9uUG9zaXRpb25lZElubGluZUxldmVsIiwiRWxlbWVudFBhaW50IiwicGFyZW50U3RhY2siLCJlZmZlY3RzIiwiYm9yZGVyQm94IiwicGFkZGluZ0JveCIsImdldFBhcmVudEVmZmVjdHMiLCJwYXJzZVN0YWNrVHJlZSIsInN0YWNraW5nQ29udGV4dCIsInJlYWxTdGFja2luZ0NvbnRleHQiLCJsaXN0SXRlbXMiLCJ0cmVhdEFzUmVhbFN0YWNraW5nQ29udGV4dCIsInBhaW50Q29udGFpbmVyIiwibGlzdE93bmVySXRlbXMiLCJzdGFjayIsIm9yZGVyXzEiLCJpbmRleF8xIiwiaW5kZXhfMiIsInByb2Nlc3NMaXN0SXRlbXMiLCJvd25lciIsIm51bWJlcmluZyIsImxpc3RWYWx1ZSIsImNyZWF0ZVBhdGhGcm9tQ3VydmVzIiwib3V0ZXIxIiwiaW5uZXIxIiwib3V0ZXIyIiwiaW5uZXIyIiwiY29udGVudEJveCIsImNhbGN1bGF0ZUJhY2tncm91bmRSZW5kZXJpbmciLCJpbnRyaW5zaWNTaXplIiwiYmFja2dyb3VuZFBvc2l0aW9uaW5nQXJlYSIsImNhbGN1bGF0ZUJhY2tncm91bmRQb3NpdGlvbmluZ0FyZWEiLCJnZXRCYWNrZ3JvdW5kVmFsdWVGb3JJbmRleCIsImJhY2tncm91bmRQYWludGluZ0FyZWEiLCJjYWxjdWxhdGVCYWNrZ3JvdW5kUGFpbnRpbmdBcmVhIiwiYmFja2dyb3VuZEltYWdlU2l6ZSIsImNhbGN1bGF0ZUJhY2tncm91bmRTaXplIiwic2l6ZVdpZHRoIiwic2l6ZUhlaWdodCIsImNhbGN1bGF0ZUJhY2tncm91bmRSZXBlYXRQYXRoIiwiaXNBdXRvIiwiaGFzSW50cmluc2ljVmFsdWUiLCJpbnRyaW5zaWNQcm9wb3J0aW9uIiwic2Vjb25kIiwiaGFzSW50cmluc2ljUHJvcG9ydGlvbiIsIkNPTlRBSU4iLCJDT1ZFUiIsImhhc0ludHJpbnNpY1dpZHRoIiwiaGFzSW50cmluc2ljSGVpZ2h0IiwiaGFzSW50cmluc2ljRGltZW5zaW9ucyIsIndpZHRoXzMiLCJoZWlnaHRfMyIsInJlcGVhdCIsIkZvbnRNZXRyaWNzIiwiX2RhdGEiLCJfZG9jdW1lbnQiLCJwYXJzZU1ldHJpY3MiLCJzcGFuIiwibWFyZ2luIiwicGFkZGluZyIsInZlcnRpY2FsQWxpZ24iLCJiYXNlbGluZSIsIm9mZnNldFRvcCIsIm1pZGRsZSIsImdldE1ldHJpY3MiLCJDYW52YXNSZW5kZXJlciIsIl9hY3RpdmVFZmZlY3RzIiwic2NhbGUiLCJmb250TWV0cmljcyIsInRyYW5zbGF0ZSIsInRleHRCYXNlbGluZSIsImFwcGx5RWZmZWN0cyIsInBvcEVmZmVjdCIsImVmZmVjdCIsImFwcGx5RWZmZWN0Iiwic2F2ZSIsImlzVHJhbnNmb3JtRWZmZWN0IiwiaXNDbGlwRWZmZWN0IiwiY2xpcCIsInJlc3RvcmUiLCJyZW5kZXJTdGFjayIsImdsb2JhbEFscGhhIiwicmVuZGVyU3RhY2tDb250ZW50IiwicmVuZGVyTm9kZSIsInBhaW50IiwicmVuZGVyTm9kZUJhY2tncm91bmRBbmRCb3JkZXJzIiwicmVuZGVyTm9kZUNvbnRlbnQiLCJyZW5kZXJUZXh0V2l0aExldHRlclNwYWNpbmciLCJmaWxsVGV4dCIsImxldHRlciIsIm1lYXN1cmVUZXh0IiwiY3JlYXRlRm9udFN0eWxlIiwidmFyaWFudCIsInJlbmRlclRleHROb2RlIiwiZm9udCIsInRleHRTaGFkb3dzIiwic2hhZG93Q29sb3IiLCJzaGFkb3dPZmZzZXRYIiwic2hhZG93T2Zmc2V0WSIsInNoYWRvd0JsdXIiLCJyZW5kZXJSZXBsYWNlZEVsZW1lbnQiLCJib3giLCJ3aW5kb3dXaWR0aCIsIndpbmRvd0hlaWdodCIsInJlbmRlciIsImZpbGwiLCJiZWdpblBhdGgiLCJhcmMiLCJpc1RleHRJbnB1dEVsZW1lbnQiLCJjYW52YXNUZXh0QWxpZ24iLCJjb21wdXRlTGluZUhlaWdodCIsIl9lIiwiX2YiLCJfZyIsIl9oIiwiX2oiLCJfayIsIl9sIiwiX20iLCJfbyIsIl9wIiwibWFzayIsInBhdGhzIiwibW92ZVRvIiwibGluZVRvIiwiZm9ybWF0UGF0aCIsImNsb3NlUGF0aCIsInBvaW50IiwiYmV6aWVyQ3VydmVUbyIsInJlbmRlclJlcGVhdCIsInBhdHRlcm4iLCJyZXNpemVJbWFnZSIsInJlbmRlckJhY2tncm91bmRJbWFnZSIsIl9sb29wXzEiLCJ0aGlzXzEiLCJ4MCIsIngxIiwieTAiLCJ5MSIsImdyYWRpZW50XzEiLCJ0b3BfMSIsInJ4IiwicnkiLCJyYWRpYWxHcmFkaWVudF8xIiwibWlkWCIsIm1pZFkiLCJpbnZGIiwiY3JlYXRlUGF0dGVybiIsImNyZWF0ZUxpbmVhckdyYWRpZW50IiwiYWRkQ29sb3JTdG9wIiwiYmFja2dyb3VuZCIsImlzUmFkaWFsR3JhZGllbnQiLCJncmFkaWVudCIsImNhbGN1bGF0ZVJhZGl1cyIsImNyZWF0ZVJhZGlhbEdyYWRpZW50IiwicmVuZGVyQm9yZGVyIiwiY3VydmVQb2ludHMiLCJib3JkZXJTaWRlIiwicGFyc2VQYXRoRm9yQm9yZGVyIiwiaGFzQmFja2dyb3VuZCIsImJvcmRlcnMiLCJib3JkZXJzXzEiLCJjYWxjdWxhdGVCYWNrZ3JvdW5kQ3VydmVkUGFpbnRpbmdBcmVhIiwiZGVsdGFXIiwiZGVsdGFIIiwiYm9yZGVyQm94QXJlYSIsIm1hc2tPZmZzZXQiLCJzaGFkb3dQYWludGluZ0FyZWEiLCJjYWxjdWxhdGVDb250ZW50Qm94UGF0aCIsIkZvcmVpZ25PYmplY3RSZW5kZXJlciIsImxvYWRTZXJpYWxpemVkU1ZHJDEiLCJwYXJzZUNvbG9yJDEiLCJyZW5kZXJFbGVtZW50Iiwib3B0cyIsImluc3RhbmNlTmFtZSIsInJlc291cmNlT3B0aW9ucyIsImRlZmF1bHRPcHRpb25zIiwid2luZG93Qm91bmRzIiwiZG9jdW1lbnRDbG9uZXIiLCJjbG9uZWRFbGVtZW50IiwiYmdDb2xvciIsImRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IiLCJyZW5kZXJPcHRpb25zIiwicmFuZG9tIiwic2Nyb2xsV2lkdGgiLCJvZmZzZXRXaWR0aCIsImNsaWVudFdpZHRoIiwic2Nyb2xsSGVpZ2h0Iiwib2Zmc2V0SGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwicGFyc2VEb2N1bWVudFNpemUiLCJsb2dnaW5nIiwicmVtb3ZlQ29udGFpbmVyIiwiZm9yZWlnbk9iamVjdFJlbmRlcmluZyIsImRldmljZVBpeGVsUmF0aW8iLCJpbm5lcldpZHRoIiwiaW5uZXJIZWlnaHQiLCJmYWN0b3J5IiwiYXBpIiwiZGVmYXVsdCIsImxvY2FscyIsIm1lbW8iLCJpc09sZElFIiwiQm9vbGVhbiIsImFsbCIsImF0b2IiLCJnZXRUYXJnZXQiLCJzdHlsZVRhcmdldCIsInF1ZXJ5U2VsZWN0b3IiLCJIVE1MSUZyYW1lRWxlbWVudCIsImNvbnRlbnREb2N1bWVudCIsImhlYWQiLCJzdHlsZXNJbkRvbSIsImdldEluZGV4QnlJZGVudGlmaWVyIiwiaWRlbnRpZmllciIsIm1vZHVsZXNUb0RvbSIsImxpc3QiLCJpZENvdW50TWFwIiwiaWRlbnRpZmllcnMiLCJiYXNlIiwib2JqIiwibWVkaWEiLCJzb3VyY2VNYXAiLCJyZWZlcmVuY2VzIiwidXBkYXRlciIsImFkZFN0eWxlIiwiaW5zZXJ0U3R5bGVFbGVtZW50IiwiYXR0cmlidXRlcyIsIm5vbmNlIiwiaW5zZXJ0IiwidGV4dFN0b3JlIiwicmVwbGFjZVRleHQiLCJyZXBsYWNlbWVudCIsImFwcGx5VG9TaW5nbGV0b25UYWciLCJyZW1vdmUiLCJzdHlsZVNoZWV0IiwiY3NzTm9kZSIsImFwcGx5VG9UYWciLCJyZW1vdmVBdHRyaWJ1dGUiLCJidG9hIiwidW5lc2NhcGUiLCJKU09OIiwic3RyaW5naWZ5Iiwic2luZ2xldG9uIiwic2luZ2xldG9uQ291bnRlciIsInVwZGF0ZSIsInN0eWxlSW5kZXgiLCJyZW1vdmVTdHlsZUVsZW1lbnQiLCJuZXdPYmoiLCJsYXN0SWRlbnRpZmllcnMiLCJuZXdMaXN0IiwibmV3TGFzdElkZW50aWZpZXJzIiwiX2luZGV4IiwiX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIiwidXNlU291cmNlTWFwIiwiY3NzTWFwcGluZyIsInNvdXJjZU1hcHBpbmciLCJzb3VyY2VVUkxzIiwic291cmNlcyIsInNvdXJjZSIsInNvdXJjZVJvb3QiLCJjc3NXaXRoTWFwcGluZ1RvU3RyaW5nIiwibWVkaWFRdWVyeSIsImRlZHVwZSIsImFscmVhZHlJbXBvcnRlZE1vZHVsZXMiLCJnZXRSYW5kb21WYWx1ZXMiLCJjcnlwdG8iLCJtc0NyeXB0byIsInJuZHM4Iiwicm5nIiwiYnl0ZVRvSGV4IiwiYnVmIiwiYnRoIiwicm5kcyIsImFwcGxpY2F0aW9uSGVpZ2h0IiwiYXBwbGljYXRpb25XaWR0aCIsImJhY2tncm91bmRJbWFnZVVybCIsImljb25zV2l0aFRleHQiLCJpbWFnZXMiLCJzZXRJY29uV2l0aFRleHQiLCJpY29uRGF0YSIsInNldEltYWdlIiwiaW1hZ2VEYXRhIiwiZGVsZXRlSW1hZ2UiLCJkZWxldGVJY29uIiwic2V0QXBwbGljYXRpb25EYXRhIiwiYXBwbGljYXRpb25EYXRhIiwic2V0QXBwbGljYXRpb25XaWR0aCIsInNldEJhY2tncm91bmRJbWFnZVVybCIsInNldElkIiwiZ2V0RG9tIiwiY29udGV4dCIsInNldFNpemUiLCJzZXRCYWNrZ3JvdW5kIiwiQmFzZUNhbnZhcyIsIm1lbnUiLCJjb250YWluZXJDbGFzc05hbWUiLCJtZW51SXRlbUNsYXNzTmFtZSIsImRvbSIsInJlbmRlck1lbnUiLCJtZW51SXRlbXMiLCJpbm5lckhUTUwiLCJtZW51RG9tIiwiaW5uZXJUZXh0Iiwib25jbGljayIsIm9uTWVudUl0ZW1DbGlja2VkIiwicG9zaXRpb25NZW51IiwibWVudUFjdGlvbiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJsb2FkSWNvbiIsImxvYWRUZXh0IiwiZGl2IiwiYWRkRHJhZ05Ecm9wTGlzdGVuZXJzIiwibW92aW5nIiwicG9pbnRlclgiLCJwb2ludGVyWSIsImV2ZW50Iiwid2hpY2giLCJtb3ZlSWNvbldpdGhUZXh0Iiwib2Zmc2V0TGVmdCIsImNsaWVudFgiLCJjbGllbnRZIiwiZGVsZXRlIiwiaW5zZXJ0SW1hZ2UiLCJpbWFnZVVybCIsInBhcmVudENvbnRhaW5lciIsIm1vdmFibGVFbGVtZW50IiwiYmFja2dyb3VuZFdpZHRoIiwiYmFja2dyb3VuZEhlaWdodCIsImFkZENvbnRleHRNZW51SGFuZGxlciIsInByZXZlbnREZWZhdWx0IiwiaW5zZXJ0SWNvbldpdGhUZXh0IiwiZXhwb3J0UmVzdWx0cyIsImV4cG9ydEpTT05EYXRhIiwiZWxlbWVudElEIiwiaWNvbldpdGhUZXh0IiwiYWNjZXB0Iiwib25jaGFuZ2UiLCJmaWxlIiwiZmlsZXMiLCJyZWFkZXIiLCJyZWFkQXNUZXh0IiwiY2xpY2siLCJpY29uVXJsIiwiaWNvblRpdGxlIiwicHJvbXB0IiwiaWNvbkRlc2NyaXB0aW9uIiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiZGV0YWlsIiwiaHRtbDJjYW52YXMiLCJ0b0Jsb2IiLCJibG9iIiwiZG93bmxvYWQiLCJjcmVhdGVPYmplY3RVUkwiLCJyZW5kZXJBcHBsaWNhdGlvbiIsImljb25zIiwiRmlsZURyYWdIb3ZlciIsInN0b3BQcm9wYWdhdGlvbiIsImRhdGFUcmFuc2ZlciIsImxvZyIsImdldEVsZW1lbnRCeUlkIl0sIm1hcHBpbmdzIjoiYUFDRSxJQUFJQSxFQUFtQixHQUd2QixTQUFTQyxFQUFvQkMsR0FHNUIsR0FBR0YsRUFBaUJFLEdBQ25CLE9BQU9GLEVBQWlCRSxHQUFVQyxRQUduQyxJQUFJQyxFQUFTSixFQUFp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QUFNLE1BRTNFNGUsR0FBVyxDQUNYbmxCLFNBQVUsQ0FDTixJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxHQUNBLEdBQ0EsR0FDQSxHQUNBLEdBQ0EsR0FDQSxHQUNBLEdBQ0EsR0FDQSxFQUNBLEVBQ0EsRUFDQSxFQUNBLEVBQ0EsRUFDQSxFQUNBLEVBQ0EsR0FFSnVHLE9BQVEsQ0FDSixJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsTUFHSnVmLEdBQVMsQ0FDVDlsQixTQUFVLENBQ04sSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLEdBQ0EsR0FDQSxHQUNBLEdBQ0EsR0FDQSxHQUNBLEdBQ0EsR0FDQSxHQUNBLEdBQ0EsR0FDQSxHQUNBLEdBQ0EsR0FDQSxFQUNBLEVBQ0EsRUFDQSxFQUNBLEVBQ0EsRUFDQSxFQUNBLEVBQ0EsR0FFSnVHLE9BQVEsQ0FDSixLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxNQUdKb2YsR0FBVyxDQUNYM2xCLFNBQVUsQ0FDTixJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJQUNBLElBQ0EsSUFDQSxJ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QUFXNEksVUFFckJaLEVBQ2hCLEdBQUlBLEVBQU90Z0QsR0FBTSxDQUNmLElBQU0wZ0QsRUFBWUosRUFBT3RnRCxHQUN6Qm9qRCxFQUFZMUMsRUFBVTJDLFNBQVVDLEVBQWlCNUMsR0FJckQsSUFBSyxJQUFNMWdELEtBQU9xbEQsRUFDaEIsR0FBSUEsRUFBTXJsRCxHQUFNLENBQ2QsSUFBTXdnRCxFQUFXNkUsRUFBTXJsRCxHQUN2QjRqRCxFQUFtQk4sRUFBaUI5QyxLLEtDL00xQzE3QixTQUFTNkcsaUJBQWlCLGlCQUFpQixTQUFDazNCLEdBQzFDejZCLFFBQVFxOUIsSUFBSzVDLEVBQXNCaUMsV0FHckNoZ0MsU0FBUzZHLGlCQUFpQixpQkFBaUIsU0FBQ2szQixHQUMxQ3VDLEVBQ0V0Z0MsU0FBUzRnQyxlQUFlLFFBQ3ZCN0MsRUFBc0JpQyxXQUkzQmhnQyxTQUFTOC9CLGNBQWMsSUFBSUMsWUFBWSxnQkFBaUIsQ0FDdERDLE9BQVEsQ0FDTjVFLGtCQUFtQixJQUNuQkMsaUJBQWtCLElBQ2xCQyxtQkNyQjRCLDBqK0REc0I1QkMsY0FBZSxHQUNmQyxPQUFRIiwiZmlsZSI6ImJ1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA1KTtcbiIsIi8qIVxuICogaHRtbDJjYW52YXMgMS4wLjAtcmMuNSA8aHR0cHM6Ly9odG1sMmNhbnZhcy5oZXJ0emVuLmNvbT5cbiAqIENvcHlyaWdodCAoYykgMjAxOSBOaWtsYXMgdm9uIEhlcnR6ZW4gPGh0dHBzOi8vaGVydHplbi5jb20+XG4gKiBSZWxlYXNlZCB1bmRlciBNSVQgTGljZW5zZVxuICovXG4oZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyA/IG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpIDpcbiAgICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuICAgIChnbG9iYWwgPSBnbG9iYWwgfHwgc2VsZiwgZ2xvYmFsLmh0bWwyY2FudmFzID0gZmFjdG9yeSgpKTtcbn0odGhpcywgZnVuY3Rpb24gKCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXHJcbiAgICB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZVxyXG4gICAgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuXHJcbiAgICBUSElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXHJcbiAgICBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIEFOWSBJTVBMSUVEXHJcbiAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLFxyXG4gICAgTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC5cclxuXHJcbiAgICBTZWUgdGhlIEFwYWNoZSBWZXJzaW9uIDIuMCBMaWNlbnNlIGZvciBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcclxuICAgIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSAqL1xyXG5cclxuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgIH07XHJcblxyXG4gICAgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxyXG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgICAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHJlc3VsdC52YWx1ZSk7IH0pLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgICAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xyXG4gICAgICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xyXG4gICAgICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcclxuICAgICAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xyXG4gICAgICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcclxuICAgICAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cblxuICAgIHZhciBCb3VuZHMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gQm91bmRzKHgsIHksIHcsIGgpIHtcclxuICAgICAgICAgICAgdGhpcy5sZWZ0ID0geDtcclxuICAgICAgICAgICAgdGhpcy50b3AgPSB5O1xyXG4gICAgICAgICAgICB0aGlzLndpZHRoID0gdztcclxuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSBoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBCb3VuZHMucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh4LCB5LCB3LCBoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQm91bmRzKHRoaXMubGVmdCArIHgsIHRoaXMudG9wICsgeSwgdGhpcy53aWR0aCArIHcsIHRoaXMuaGVpZ2h0ICsgaCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBCb3VuZHMuZnJvbUNsaWVudFJlY3QgPSBmdW5jdGlvbiAoY2xpZW50UmVjdCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEJvdW5kcyhjbGllbnRSZWN0LmxlZnQsIGNsaWVudFJlY3QudG9wLCBjbGllbnRSZWN0LndpZHRoLCBjbGllbnRSZWN0LmhlaWdodCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gQm91bmRzO1xyXG4gICAgfSgpKTtcclxuICAgIHZhciBwYXJzZUJvdW5kcyA9IGZ1bmN0aW9uIChub2RlKSB7XHJcbiAgICAgICAgcmV0dXJuIEJvdW5kcy5mcm9tQ2xpZW50UmVjdChub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcclxuICAgIH07XHJcbiAgICB2YXIgcGFyc2VEb2N1bWVudFNpemUgPSBmdW5jdGlvbiAoZG9jdW1lbnQpIHtcclxuICAgICAgICB2YXIgYm9keSA9IGRvY3VtZW50LmJvZHk7XHJcbiAgICAgICAgdmFyIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICAgICAgICBpZiAoIWJvZHkgfHwgIWRvY3VtZW50RWxlbWVudCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gZ2V0IGRvY3VtZW50IHNpemVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciB3aWR0aCA9IE1hdGgubWF4KE1hdGgubWF4KGJvZHkuc2Nyb2xsV2lkdGgsIGRvY3VtZW50RWxlbWVudC5zY3JvbGxXaWR0aCksIE1hdGgubWF4KGJvZHkub2Zmc2V0V2lkdGgsIGRvY3VtZW50RWxlbWVudC5vZmZzZXRXaWR0aCksIE1hdGgubWF4KGJvZHkuY2xpZW50V2lkdGgsIGRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkpO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSBNYXRoLm1heChNYXRoLm1heChib2R5LnNjcm9sbEhlaWdodCwgZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCksIE1hdGgubWF4KGJvZHkub2Zmc2V0SGVpZ2h0LCBkb2N1bWVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0KSwgTWF0aC5tYXgoYm9keS5jbGllbnRIZWlnaHQsIGRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpKTtcclxuICAgICAgICByZXR1cm4gbmV3IEJvdW5kcygwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcclxuICAgIH07XG5cbiAgICAvKlxuICAgICAqIGNzcy1saW5lLWJyZWFrIDEuMS4xIDxodHRwczovL2dpdGh1Yi5jb20vbmlrbGFzdmgvY3NzLWxpbmUtYnJlYWsjcmVhZG1lPlxuICAgICAqIENvcHlyaWdodCAoYykgMjAxOSBOaWtsYXMgdm9uIEhlcnR6ZW4gPGh0dHBzOi8vaGVydHplbi5jb20+XG4gICAgICogUmVsZWFzZWQgdW5kZXIgTUlUIExpY2Vuc2VcbiAgICAgKi9cbiAgICB2YXIgdG9Db2RlUG9pbnRzID0gZnVuY3Rpb24gKHN0cikge1xyXG4gICAgICAgIHZhciBjb2RlUG9pbnRzID0gW107XHJcbiAgICAgICAgdmFyIGkgPSAwO1xyXG4gICAgICAgIHZhciBsZW5ndGggPSBzdHIubGVuZ3RoO1xyXG4gICAgICAgIHdoaWxlIChpIDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IHN0ci5jaGFyQ29kZUF0KGkrKyk7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSA+PSAweGQ4MDAgJiYgdmFsdWUgPD0gMHhkYmZmICYmIGkgPCBsZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHZhciBleHRyYSA9IHN0ci5jaGFyQ29kZUF0KGkrKyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoKGV4dHJhICYgMHhmYzAwKSA9PT0gMHhkYzAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29kZVBvaW50cy5wdXNoKCgodmFsdWUgJiAweDNmZikgPDwgMTApICsgKGV4dHJhICYgMHgzZmYpICsgMHgxMDAwMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb2RlUG9pbnRzLnB1c2godmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGktLTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvZGVQb2ludHMucHVzaCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNvZGVQb2ludHM7XHJcbiAgICB9O1xyXG4gICAgdmFyIGZyb21Db2RlUG9pbnQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIGNvZGVQb2ludHMgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgICAgICBjb2RlUG9pbnRzW19pXSA9IGFyZ3VtZW50c1tfaV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChTdHJpbmcuZnJvbUNvZGVQb2ludCkge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQuYXBwbHkoU3RyaW5nLCBjb2RlUG9pbnRzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGxlbmd0aCA9IGNvZGVQb2ludHMubGVuZ3RoO1xyXG4gICAgICAgIGlmICghbGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGNvZGVVbml0cyA9IFtdO1xyXG4gICAgICAgIHZhciBpbmRleCA9IC0xO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSAnJztcclxuICAgICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xyXG4gICAgICAgICAgICB2YXIgY29kZVBvaW50ID0gY29kZVBvaW50c1tpbmRleF07XHJcbiAgICAgICAgICAgIGlmIChjb2RlUG9pbnQgPD0gMHhmZmZmKSB7XHJcbiAgICAgICAgICAgICAgICBjb2RlVW5pdHMucHVzaChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29kZVBvaW50IC09IDB4MTAwMDA7XHJcbiAgICAgICAgICAgICAgICBjb2RlVW5pdHMucHVzaCgoY29kZVBvaW50ID4+IDEwKSArIDB4ZDgwMCwgY29kZVBvaW50ICUgMHg0MDAgKyAweGRjMDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpbmRleCArIDEgPT09IGxlbmd0aCB8fCBjb2RlVW5pdHMubGVuZ3RoID4gMHg0MDAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsIGNvZGVVbml0cyk7XHJcbiAgICAgICAgICAgICAgICBjb2RlVW5pdHMubGVuZ3RoID0gMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfTtcclxuICAgIHZhciBjaGFycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJztcclxuICAgIC8vIFVzZSBhIGxvb2t1cCB0YWJsZSB0byBmaW5kIHRoZSBpbmRleC5cclxuICAgIHZhciBsb29rdXAgPSB0eXBlb2YgVWludDhBcnJheSA9PT0gJ3VuZGVmaW5lZCcgPyBbXSA6IG5ldyBVaW50OEFycmF5KDI1Nik7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbG9va3VwW2NoYXJzLmNoYXJDb2RlQXQoaSldID0gaTtcclxuICAgIH1cclxuICAgIHZhciBkZWNvZGUgPSBmdW5jdGlvbiAoYmFzZTY0KSB7XHJcbiAgICAgICAgdmFyIGJ1ZmZlckxlbmd0aCA9IGJhc2U2NC5sZW5ndGggKiAwLjc1LCBsZW4gPSBiYXNlNjQubGVuZ3RoLCBpLCBwID0gMCwgZW5jb2RlZDEsIGVuY29kZWQyLCBlbmNvZGVkMywgZW5jb2RlZDQ7XHJcbiAgICAgICAgaWYgKGJhc2U2NFtiYXNlNjQubGVuZ3RoIC0gMV0gPT09ICc9Jykge1xyXG4gICAgICAgICAgICBidWZmZXJMZW5ndGgtLTtcclxuICAgICAgICAgICAgaWYgKGJhc2U2NFtiYXNlNjQubGVuZ3RoIC0gMl0gPT09ICc9Jykge1xyXG4gICAgICAgICAgICAgICAgYnVmZmVyTGVuZ3RoLS07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGJ1ZmZlciA9IHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiZcclxuICAgICAgICAgICAgdHlwZW9mIFVpbnQ4QXJyYXkgIT09ICd1bmRlZmluZWQnICYmXHJcbiAgICAgICAgICAgIHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5zbGljZSAhPT0gJ3VuZGVmaW5lZCdcclxuICAgICAgICAgICAgPyBuZXcgQXJyYXlCdWZmZXIoYnVmZmVyTGVuZ3RoKVxyXG4gICAgICAgICAgICA6IG5ldyBBcnJheShidWZmZXJMZW5ndGgpO1xyXG4gICAgICAgIHZhciBieXRlcyA9IEFycmF5LmlzQXJyYXkoYnVmZmVyKSA/IGJ1ZmZlciA6IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7XHJcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSArPSA0KSB7XHJcbiAgICAgICAgICAgIGVuY29kZWQxID0gbG9va3VwW2Jhc2U2NC5jaGFyQ29kZUF0KGkpXTtcclxuICAgICAgICAgICAgZW5jb2RlZDIgPSBsb29rdXBbYmFzZTY0LmNoYXJDb2RlQXQoaSArIDEpXTtcclxuICAgICAgICAgICAgZW5jb2RlZDMgPSBsb29rdXBbYmFzZTY0LmNoYXJDb2RlQXQoaSArIDIpXTtcclxuICAgICAgICAgICAgZW5jb2RlZDQgPSBsb29rdXBbYmFzZTY0LmNoYXJDb2RlQXQoaSArIDMpXTtcclxuICAgICAgICAgICAgYnl0ZXNbcCsrXSA9IChlbmNvZGVkMSA8PCAyKSB8IChlbmNvZGVkMiA+PiA0KTtcclxuICAgICAgICAgICAgYnl0ZXNbcCsrXSA9ICgoZW5jb2RlZDIgJiAxNSkgPDwgNCkgfCAoZW5jb2RlZDMgPj4gMik7XHJcbiAgICAgICAgICAgIGJ5dGVzW3ArK10gPSAoKGVuY29kZWQzICYgMykgPDwgNikgfCAoZW5jb2RlZDQgJiA2Myk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBidWZmZXI7XHJcbiAgICB9O1xyXG4gICAgdmFyIHBvbHlVaW50MTZBcnJheSA9IGZ1bmN0aW9uIChidWZmZXIpIHtcclxuICAgICAgICB2YXIgbGVuZ3RoID0gYnVmZmVyLmxlbmd0aDtcclxuICAgICAgICB2YXIgYnl0ZXMgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAyKSB7XHJcbiAgICAgICAgICAgIGJ5dGVzLnB1c2goKGJ1ZmZlcltpICsgMV0gPDwgOCkgfCBidWZmZXJbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnl0ZXM7XHJcbiAgICB9O1xyXG4gICAgdmFyIHBvbHlVaW50MzJBcnJheSA9IGZ1bmN0aW9uIChidWZmZXIpIHtcclxuICAgICAgICB2YXIgbGVuZ3RoID0gYnVmZmVyLmxlbmd0aDtcclxuICAgICAgICB2YXIgYnl0ZXMgPSBbXTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSA0KSB7XHJcbiAgICAgICAgICAgIGJ5dGVzLnB1c2goKGJ1ZmZlcltpICsgM10gPDwgMjQpIHwgKGJ1ZmZlcltpICsgMl0gPDwgMTYpIHwgKGJ1ZmZlcltpICsgMV0gPDwgOCkgfCBidWZmZXJbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnl0ZXM7XHJcbiAgICB9O1xuXG4gICAgLyoqIFNoaWZ0IHNpemUgZm9yIGdldHRpbmcgdGhlIGluZGV4LTIgdGFibGUgb2Zmc2V0LiAqL1xyXG4gICAgdmFyIFVUUklFMl9TSElGVF8yID0gNTtcclxuICAgIC8qKiBTaGlmdCBzaXplIGZvciBnZXR0aW5nIHRoZSBpbmRleC0xIHRhYmxlIG9mZnNldC4gKi9cclxuICAgIHZhciBVVFJJRTJfU0hJRlRfMSA9IDYgKyA1O1xyXG4gICAgLyoqXHJcbiAgICAgKiBTaGlmdCBzaXplIGZvciBzaGlmdGluZyBsZWZ0IHRoZSBpbmRleCBhcnJheSB2YWx1ZXMuXHJcbiAgICAgKiBJbmNyZWFzZXMgcG9zc2libGUgZGF0YSBzaXplIHdpdGggMTYtYml0IGluZGV4IHZhbHVlcyBhdCB0aGUgY29zdFxyXG4gICAgICogb2YgY29tcGFjdGFiaWxpdHkuXHJcbiAgICAgKiBUaGlzIHJlcXVpcmVzIGRhdGEgYmxvY2tzIHRvIGJlIGFsaWduZWQgYnkgVVRSSUUyX0RBVEFfR1JBTlVMQVJJVFkuXHJcbiAgICAgKi9cclxuICAgIHZhciBVVFJJRTJfSU5ERVhfU0hJRlQgPSAyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBEaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBzaGlmdCBzaXplcyxcclxuICAgICAqIGZvciBnZXR0aW5nIGFuIGluZGV4LTEgb2Zmc2V0IGZyb20gYW4gaW5kZXgtMiBvZmZzZXQuIDY9MTEtNVxyXG4gICAgICovXHJcbiAgICB2YXIgVVRSSUUyX1NISUZUXzFfMiA9IFVUUklFMl9TSElGVF8xIC0gVVRSSUUyX1NISUZUXzI7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwYXJ0IG9mIHRoZSBpbmRleC0yIHRhYmxlIGZvciBVK0Q4MDAuLlUrREJGRiBzdG9yZXMgdmFsdWVzIGZvclxyXG4gICAgICogbGVhZCBzdXJyb2dhdGUgY29kZSBfdW5pdHNfIG5vdCBjb2RlIF9wb2ludHNfLlxyXG4gICAgICogVmFsdWVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF9wb2ludHNfIGFyZSBpbmRleGVkIHdpdGggdGhpcyBwb3J0aW9uIG9mIHRoZSB0YWJsZS5cclxuICAgICAqIExlbmd0aD0zMj0weDIwPTB4NDAwPj5VVFJJRTJfU0hJRlRfMi4gKFRoZXJlIGFyZSAxMDI0PTB4NDAwIGxlYWQgc3Vycm9nYXRlcy4pXHJcbiAgICAgKi9cclxuICAgIHZhciBVVFJJRTJfTFNDUF9JTkRFWF8yX09GRlNFVCA9IDB4MTAwMDAgPj4gVVRSSUUyX1NISUZUXzI7XHJcbiAgICAvKiogTnVtYmVyIG9mIGVudHJpZXMgaW4gYSBkYXRhIGJsb2NrLiAzMj0weDIwICovXHJcbiAgICB2YXIgVVRSSUUyX0RBVEFfQkxPQ0tfTEVOR1RIID0gMSA8PCBVVFJJRTJfU0hJRlRfMjtcclxuICAgIC8qKiBNYXNrIGZvciBnZXR0aW5nIHRoZSBsb3dlciBiaXRzIGZvciB0aGUgaW4tZGF0YS1ibG9jayBvZmZzZXQuICovXHJcbiAgICB2YXIgVVRSSUUyX0RBVEFfTUFTSyA9IFVUUklFMl9EQVRBX0JMT0NLX0xFTkdUSCAtIDE7XHJcbiAgICB2YXIgVVRSSUUyX0xTQ1BfSU5ERVhfMl9MRU5HVEggPSAweDQwMCA+PiBVVFJJRTJfU0hJRlRfMjtcclxuICAgIC8qKiBDb3VudCB0aGUgbGVuZ3RocyBvZiBib3RoIEJNUCBwaWVjZXMuIDIwODA9MHg4MjAgKi9cclxuICAgIHZhciBVVFJJRTJfSU5ERVhfMl9CTVBfTEVOR1RIID0gVVRSSUUyX0xTQ1BfSU5ERVhfMl9PRkZTRVQgKyBVVFJJRTJfTFNDUF9JTkRFWF8yX0xFTkdUSDtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIDItYnl0ZSBVVEYtOCB2ZXJzaW9uIG9mIHRoZSBpbmRleC0yIHRhYmxlIGZvbGxvd3MgYXQgb2Zmc2V0IDIwODA9MHg4MjAuXHJcbiAgICAgKiBMZW5ndGggMzI9MHgyMCBmb3IgbGVhZCBieXRlcyBDMC4uREYsIHJlZ2FyZGxlc3Mgb2YgVVRSSUUyX1NISUZUXzIuXHJcbiAgICAgKi9cclxuICAgIHZhciBVVFJJRTJfVVRGOF8yQl9JTkRFWF8yX09GRlNFVCA9IFVUUklFMl9JTkRFWF8yX0JNUF9MRU5HVEg7XHJcbiAgICB2YXIgVVRSSUUyX1VURjhfMkJfSU5ERVhfMl9MRU5HVEggPSAweDgwMCA+PiA2OyAvKiBVKzA4MDAgaXMgdGhlIGZpcnN0IGNvZGUgcG9pbnQgYWZ0ZXIgMi1ieXRlIFVURi04ICovXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBpbmRleC0xIHRhYmxlLCBvbmx5IHVzZWQgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMsIGF0IG9mZnNldCAyMTEyPTB4ODQwLlxyXG4gICAgICogVmFyaWFibGUgbGVuZ3RoLCBmb3IgY29kZSBwb2ludHMgdXAgdG8gaGlnaFN0YXJ0LCB3aGVyZSB0aGUgbGFzdCBzaW5nbGUtdmFsdWUgcmFuZ2Ugc3RhcnRzLlxyXG4gICAgICogTWF4aW11bSBsZW5ndGggNTEyPTB4MjAwPTB4MTAwMDAwPj5VVFJJRTJfU0hJRlRfMS5cclxuICAgICAqIChGb3IgMHgxMDAwMDAgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyBVKzEwMDAwLi5VKzEwZmZmZi4pXHJcbiAgICAgKlxyXG4gICAgICogVGhlIHBhcnQgb2YgdGhlIGluZGV4LTIgdGFibGUgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgc3RhcnRzXHJcbiAgICAgKiBhZnRlciB0aGlzIGluZGV4LTEgdGFibGUuXHJcbiAgICAgKlxyXG4gICAgICogQm90aCB0aGUgaW5kZXgtMSB0YWJsZSBhbmQgdGhlIGZvbGxvd2luZyBwYXJ0IG9mIHRoZSBpbmRleC0yIHRhYmxlXHJcbiAgICAgKiBhcmUgb21pdHRlZCBjb21wbGV0ZWx5IGlmIHRoZXJlIGlzIG9ubHkgQk1QIGRhdGEuXHJcbiAgICAgKi9cclxuICAgIHZhciBVVFJJRTJfSU5ERVhfMV9PRkZTRVQgPSBVVFJJRTJfVVRGOF8yQl9JTkRFWF8yX09GRlNFVCArIFVUUklFMl9VVEY4XzJCX0lOREVYXzJfTEVOR1RIO1xyXG4gICAgLyoqXHJcbiAgICAgKiBOdW1iZXIgb2YgaW5kZXgtMSBlbnRyaWVzIGZvciB0aGUgQk1QLiAzMj0weDIwXHJcbiAgICAgKiBUaGlzIHBhcnQgb2YgdGhlIGluZGV4LTEgdGFibGUgaXMgb21pdHRlZCBmcm9tIHRoZSBzZXJpYWxpemVkIGZvcm0uXHJcbiAgICAgKi9cclxuICAgIHZhciBVVFJJRTJfT01JVFRFRF9CTVBfSU5ERVhfMV9MRU5HVEggPSAweDEwMDAwID4+IFVUUklFMl9TSElGVF8xO1xyXG4gICAgLyoqIE51bWJlciBvZiBlbnRyaWVzIGluIGFuIGluZGV4LTIgYmxvY2suIDY0PTB4NDAgKi9cclxuICAgIHZhciBVVFJJRTJfSU5ERVhfMl9CTE9DS19MRU5HVEggPSAxIDw8IFVUUklFMl9TSElGVF8xXzI7XHJcbiAgICAvKiogTWFzayBmb3IgZ2V0dGluZyB0aGUgbG93ZXIgYml0cyBmb3IgdGhlIGluLWluZGV4LTItYmxvY2sgb2Zmc2V0LiAqL1xyXG4gICAgdmFyIFVUUklFMl9JTkRFWF8yX01BU0sgPSBVVFJJRTJfSU5ERVhfMl9CTE9DS19MRU5HVEggLSAxO1xyXG4gICAgdmFyIHNsaWNlMTYgPSBmdW5jdGlvbiAodmlldywgc3RhcnQsIGVuZCkge1xyXG4gICAgICAgIGlmICh2aWV3LnNsaWNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2aWV3LnNsaWNlKHN0YXJ0LCBlbmQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3IFVpbnQxNkFycmF5KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHZpZXcsIHN0YXJ0LCBlbmQpKTtcclxuICAgIH07XHJcbiAgICB2YXIgc2xpY2UzMiA9IGZ1bmN0aW9uICh2aWV3LCBzdGFydCwgZW5kKSB7XHJcbiAgICAgICAgaWYgKHZpZXcuc2xpY2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZpZXcuc2xpY2Uoc3RhcnQsIGVuZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXcgVWludDMyQXJyYXkoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodmlldywgc3RhcnQsIGVuZCkpO1xyXG4gICAgfTtcclxuICAgIHZhciBjcmVhdGVUcmllRnJvbUJhc2U2NCA9IGZ1bmN0aW9uIChiYXNlNjQpIHtcclxuICAgICAgICB2YXIgYnVmZmVyID0gZGVjb2RlKGJhc2U2NCk7XHJcbiAgICAgICAgdmFyIHZpZXczMiA9IEFycmF5LmlzQXJyYXkoYnVmZmVyKSA/IHBvbHlVaW50MzJBcnJheShidWZmZXIpIDogbmV3IFVpbnQzMkFycmF5KGJ1ZmZlcik7XHJcbiAgICAgICAgdmFyIHZpZXcxNiA9IEFycmF5LmlzQXJyYXkoYnVmZmVyKSA/IHBvbHlVaW50MTZBcnJheShidWZmZXIpIDogbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcik7XHJcbiAgICAgICAgdmFyIGhlYWRlckxlbmd0aCA9IDI0O1xyXG4gICAgICAgIHZhciBpbmRleCA9IHNsaWNlMTYodmlldzE2LCBoZWFkZXJMZW5ndGggLyAyLCB2aWV3MzJbNF0gLyAyKTtcclxuICAgICAgICB2YXIgZGF0YSA9IHZpZXczMls1XSA9PT0gMlxyXG4gICAgICAgICAgICA/IHNsaWNlMTYodmlldzE2LCAoaGVhZGVyTGVuZ3RoICsgdmlldzMyWzRdKSAvIDIpXHJcbiAgICAgICAgICAgIDogc2xpY2UzMih2aWV3MzIsIE1hdGguY2VpbCgoaGVhZGVyTGVuZ3RoICsgdmlldzMyWzRdKSAvIDQpKTtcclxuICAgICAgICByZXR1cm4gbmV3IFRyaWUodmlldzMyWzBdLCB2aWV3MzJbMV0sIHZpZXczMlsyXSwgdmlldzMyWzNdLCBpbmRleCwgZGF0YSk7XHJcbiAgICB9O1xyXG4gICAgdmFyIFRyaWUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gVHJpZShpbml0aWFsVmFsdWUsIGVycm9yVmFsdWUsIGhpZ2hTdGFydCwgaGlnaFZhbHVlSW5kZXgsIGluZGV4LCBkYXRhKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbFZhbHVlID0gaW5pdGlhbFZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yVmFsdWUgPSBlcnJvclZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmhpZ2hTdGFydCA9IGhpZ2hTdGFydDtcclxuICAgICAgICAgICAgdGhpcy5oaWdoVmFsdWVJbmRleCA9IGhpZ2hWYWx1ZUluZGV4O1xyXG4gICAgICAgICAgICB0aGlzLmluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEdldCB0aGUgdmFsdWUgZm9yIGEgY29kZSBwb2ludCBhcyBzdG9yZWQgaW4gdGhlIFRyaWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcGFyYW0gY29kZVBvaW50IHRoZSBjb2RlIHBvaW50XHJcbiAgICAgICAgICogQHJldHVybiB0aGUgdmFsdWVcclxuICAgICAgICAgKi9cclxuICAgICAgICBUcmllLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoY29kZVBvaW50KSB7XHJcbiAgICAgICAgICAgIHZhciBpeDtcclxuICAgICAgICAgICAgaWYgKGNvZGVQb2ludCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29kZVBvaW50IDwgMHgwZDgwMCB8fCAoY29kZVBvaW50ID4gMHgwZGJmZiAmJiBjb2RlUG9pbnQgPD0gMHgwZmZmZikpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBPcmRpbmFyeSBCTVAgY29kZSBwb2ludCwgZXhjbHVkaW5nIGxlYWRpbmcgc3Vycm9nYXRlcy5cclxuICAgICAgICAgICAgICAgICAgICAvLyBCTVAgdXNlcyBhIHNpbmdsZSBsZXZlbCBsb29rdXAuICBCTVAgaW5kZXggc3RhcnRzIGF0IG9mZnNldCAwIGluIHRoZSBUcmllMiBpbmRleC5cclxuICAgICAgICAgICAgICAgICAgICAvLyAxNiBiaXQgZGF0YSBpcyBzdG9yZWQgaW4gdGhlIGluZGV4IGFycmF5IGl0c2VsZi5cclxuICAgICAgICAgICAgICAgICAgICBpeCA9IHRoaXMuaW5kZXhbY29kZVBvaW50ID4+IFVUUklFMl9TSElGVF8yXTtcclxuICAgICAgICAgICAgICAgICAgICBpeCA9IChpeCA8PCBVVFJJRTJfSU5ERVhfU0hJRlQpICsgKGNvZGVQb2ludCAmIFVUUklFMl9EQVRBX01BU0spO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFbaXhdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGNvZGVQb2ludCA8PSAweGZmZmYpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBMZWFkIFN1cnJvZ2F0ZSBDb2RlIFBvaW50LiAgQSBTZXBhcmF0ZSBpbmRleCBzZWN0aW9uIGlzIHN0b3JlZCBmb3JcclxuICAgICAgICAgICAgICAgICAgICAvLyBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cy5cclxuICAgICAgICAgICAgICAgICAgICAvLyAgIFRoZSBtYWluIGluZGV4IGhhcyB0aGUgY29kZSB1bml0IGRhdGEuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gICBGb3IgdGhpcyBmdW5jdGlvbiwgd2UgbmVlZCB0aGUgY29kZSBwb2ludCBkYXRhLlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IHRoaXMgZXhwcmVzc2lvbiBjb3VsZCBiZSByZWZhY3RvcmVkIGZvciBzbGlnaHRseSBpbXByb3ZlZCBlZmZpY2llbmN5LCBidXRcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICBzdXJyb2dhdGUgY29kZSBwb2ludHMgd2lsbCBiZSBzbyByYXJlIGluIHByYWN0aWNlIHRoYXQgaXQncyBub3Qgd29ydGggaXQuXHJcbiAgICAgICAgICAgICAgICAgICAgaXggPSB0aGlzLmluZGV4W1VUUklFMl9MU0NQX0lOREVYXzJfT0ZGU0VUICsgKChjb2RlUG9pbnQgLSAweGQ4MDApID4+IFVUUklFMl9TSElGVF8yKV07XHJcbiAgICAgICAgICAgICAgICAgICAgaXggPSAoaXggPDwgVVRSSUUyX0lOREVYX1NISUZUKSArIChjb2RlUG9pbnQgJiBVVFJJRTJfREFUQV9NQVNLKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2l4XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChjb2RlUG9pbnQgPCB0aGlzLmhpZ2hTdGFydCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFN1cHBsZW1lbnRhbCBjb2RlIHBvaW50LCB1c2UgdHdvLWxldmVsIGxvb2t1cC5cclxuICAgICAgICAgICAgICAgICAgICBpeCA9IFVUUklFMl9JTkRFWF8xX09GRlNFVCAtIFVUUklFMl9PTUlUVEVEX0JNUF9JTkRFWF8xX0xFTkdUSCArIChjb2RlUG9pbnQgPj4gVVRSSUUyX1NISUZUXzEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl4ID0gdGhpcy5pbmRleFtpeF07XHJcbiAgICAgICAgICAgICAgICAgICAgaXggKz0gKGNvZGVQb2ludCA+PiBVVFJJRTJfU0hJRlRfMikgJiBVVFJJRTJfSU5ERVhfMl9NQVNLO1xyXG4gICAgICAgICAgICAgICAgICAgIGl4ID0gdGhpcy5pbmRleFtpeF07XHJcbiAgICAgICAgICAgICAgICAgICAgaXggPSAoaXggPDwgVVRSSUUyX0lOREVYX1NISUZUKSArIChjb2RlUG9pbnQgJiBVVFJJRTJfREFUQV9NQVNLKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2l4XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChjb2RlUG9pbnQgPD0gMHgxMGZmZmYpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhW3RoaXMuaGlnaFZhbHVlSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4gIFRoZSBjb2RlIHBvaW50IGlzIG91dHNpZGUgb2YgdGhlIGxlZ2FsIHJhbmdlIG9mIDAuLjB4MTBmZmZmLlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvclZhbHVlO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIFRyaWU7XHJcbiAgICB9KCkpO1xuXG4gICAgdmFyIGJhc2U2NCA9ICdLd0FBQUFBQUFBQUFDQTRBSURvQUFQQWZBQUFDQUFBQUFBQUlBQkFBR0FCQUFFZ0FVQUJZQUY0QVpnQmVBR1lBWUFCb0FIQUFlQUJlQUdZQWZBQ0VBSUFBaUFDUUFKZ0FvQUNvQUswQXRRQzlBTVVBWGdCbUFGNEFaZ0JlQUdZQXpRRFZBRjRBWmdEUkFOa0EzZ0RtQU93QTlBRDhBQVFCREFFVUFSb0JJZ0dBQUlnQUp3RXZBVGNCUHdGRkFVMEJUQUZVQVZ3QlpBRnNBWE1CZXdHREFUQUFpd0dUQVpzQm9nR2tBYXdCdEFHOEFjSUJ5Z0hTQWRvQjRBSG9BZkFCK0FIK0FRWUNEZ0lXQXY0QkhnSW1BaTRDTmdJK0FrVUNUUUpUQWxzQ1l3SnJBbkVDZVFLQkFrMENpUUtSQXBrQ29RS29BckFDdUFMQUFzUUN6QUl3QU5RQzNBTGtBakFBN0FMMEF2d0NBUU1KQXhBREdBTXdBQ0FESmdNdUF6WURQZ09BQUVZRFNnTlNBMUlEVWdOYUExb0RZQU5pQTJJRGdBQ0FBR29EZ0FCeUEzWURmZ09BQUlRRGdBQ0tBNUlEbWdPQUFJQUFvZ09xQTRBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUs4RHR3T0FBSUFBdndQSEE4OEQxd1BmQXlBRDV3UHNBL1FEL0FPQUFJQUFCQVFNQkJJRWdBQVdCQjRFSmdRdUJETUVJQU03QkVFRVhnQkpCQ0FEVVFSWkJHRUVhUVF3QURBQWNRUStBWGtFZ1FTSkJKRUVnQUNZQklBQW9BU29CSzhFdHdRd0FMOEV4UVNBQUlBQWdBQ0FBSUFBZ0FDZ0FNMEVYZ0JlQUY0QVhnQmVBRjRBWGdCZUFOVUVYZ0RaQk9FRVhnRHBCUEVFK1FRQkJRa0ZFUVVaQlNFRktRVXhCVFVGUFFWRkJVd0ZWQVZjQlY0QVl3VmVBR3NGY3dWN0JZTUZpd1dTQlY0QW1nV2dCYWNGWGdCZUFGNEFYZ0JlQUtzRlhnQ3lCYkVGdWdXN0JjSUZ3Z1hJQmNJRndnWFFCZFFGM0FYa0Jlc0Y4d1g3QlFNR0N3WVRCaHNHSXdZckJqTUdPd1plQUQ4R1J3Wk5CbDRBVkFaYkJsNEFYZ0JlQUY0QVhnQmVBRjRBWGdCZUFGNEFYZ0JlQUdNR1hnQnFCbkVHWGdCZUFGNEFYZ0JlQUY0QVhnQmVBRjRBWGdCNUJvQUc0d1NHQm80R2t3YUFBSUFESGdSNUFGNEFYZ0JlQUpzR2dBQkdBNEFBb3dhckJyTUdzd2FnQUxzR3d3YkxCakFBMHdiYUJ0b0czUWJhQnRvRzJnYmFCdG9HMmdibEJ1c0c4d2I3QmdNSEN3Y1RCeHNIQ3djakJ5c0hNQWMxQnpVSE9nZENCOW9HU2dkU0Ixb0hZQWZhQmxvSGFBZmFCbElIMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCalVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSGJRZGVBRjRBTlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RZDFCMzBITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCNE1IMmdhS0I2OEVnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJOEhsd2RlQUo4SHB3ZUFBSUFBcndlM0IxNEFYZ0MvQjhVSHlnY3dBTkFIMkFmZ0I0QUE2QWZ3Qno0QitBY0FDRndCQ0FnUENCY0lvZ0VZQVI4SUp3aUFBQzhJTndnL0NDQURSd2hQQ0ZjSVh3aG5DRW9ER2dTQUFJQUFnQUJ2Q0hjSWVBaDVDSG9JZXdoOENIMElkd2g0Q0hrSWVnaDdDSHdJZlFoM0NIZ0llUWg2Q0hzSWZBaDlDSGNJZUFoNUNIb0lld2g4Q0gwSWR3aDRDSGtJZWdoN0NId0lmUWgzQ0hnSWVRaDZDSHNJZkFoOUNIY0llQWg1Q0hvSWV3aDhDSDBJZHdoNENIa0llZ2g3Q0h3SWZRaDNDSGdJZVFoNkNIc0lmQWg5Q0hjSWVBaDVDSG9JZXdoOENIMElkd2g0Q0hrSWVnaDdDSHdJZlFoM0NIZ0llUWg2Q0hzSWZBaDlDSGNJZUFoNUNIb0lld2g4Q0gwSWR3aDRDSGtJZWdoN0NId0lmUWgzQ0hnSWVRaDZDSHNJZkFoOUNIY0llQWg1Q0hvSWV3aDhDSDBJZHdoNENIa0llZ2g3Q0h3SWZRaDNDSGdJZVFoNkNIc0lmQWg5Q0hjSWVBaDVDSG9JZXdoOENIMElkd2g0Q0hrSWVnaDdDSHdJZlFoM0NIZ0llUWg2Q0hzSWZBaDlDSGNJZUFoNUNIb0lld2g4Q0gwSWR3aDRDSGtJZWdoN0NId0lmUWgzQ0hnSWVRaDZDSHNJZkFoOUNIY0llQWg1Q0hvSWV3aDhDSDBJZHdoNENIa0llZ2g3Q0h3SWZRaDNDSGdJZVFoNkNIc0lmQWg5Q0hjSWVBaDVDSG9JZXdoOENIMElkd2g0Q0hrSWVnaDdDSHdJZlFoM0NIZ0llUWg2Q0hzSWZBaDlDSGNJZUFoNUNIb0lld2g4Q0gwSWR3aDRDSGtJZWdoN0NId0lmUWgzQ0hnSWVRaDZDSHNJZkFoOUNIY0llQWg1Q0hvSWV3aDhDSDBJZHdoNENIa0llZ2g3Q0h3SWZRaDNDSGdJZVFoNkNIc0lmQWg5Q0hjSWVBaDVDSG9JZXdoOENIMElkd2g0Q0hrSWVnaDdDSHdJZlFoM0NIZ0llUWg2Q0hzSWZBaDlDSGNJZUFoNUNIb0lld2g4Q0gwSWR3aDRDSGtJZWdoN0NId0lmUWgzQ0hnSWVRaDZDSHNJZkFoOUNIY0llQWg1Q0hvSWV3aDhDSDBJZHdoNENIa0llZ2g3Q0h3SWZRaDNDSGdJZVFoNkNIc0lmQWg5Q0hjSWVBaDVDSG9JZXdoOENIMElkd2g0Q0hrSWVnaDdDSHdJZlFoM0NIZ0llUWg2Q0hzSWZBaDlDSGNJZUFoNUNIb0lld2g4Q0gwSWR3aDRDSGtJZWdoN0NId0loQWlMQ0k0SU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FKWUlsZ2lXQ0pZSWxnaVdDSllJbGdpV0NKWUlsZ2lXQ0pZSWxnaVdDSllJbGdpV0NKWUlsZ2lXQ0pZSWxnaVdDSllJbGdpV0NKWUlsZ2lXQ0pZSWxnZ3dBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUI1NElOUWMxQjZJSTJnYXFDTElJdWdpQUFJQUF2Z2pHQ0lBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQXl3aUhBWUFBMHdpQUFOa0kzUWpsQ08wSTlBajhDSUFBZ0FDQUFBSUpDZ2tTQ1JvSklna25DVFlITHdrM0NaWUlsZ2lXQ0pZSWxnaVdDSllJbGdpV0NKWUlsZ2lXQ0pZSWxnaVdDSllJbGdpV0NKWUlsZ2lXQ0pZSWxnaVdDSllJbGdpV0NKWUlsZ2lXQ0pZSWxnaUFBSUFBQUFGQUFYZ0JlQUdBQWNBQmVBSHdBUUFDUUFLQUFyUUM5QUo0QVhnQmVBRTBBM2dCUkFONEE3QUQ4QU13QkdnRUFBS2NCTndFRkFVd0JYQUY0UWtoQ21FS25BcmNDZ0FISEFzQUJ6NExBQWNBQndBSEFBZCtDNkFCb0FHK0MvNExBQWNBQndBSEFBYytERjRNQUFjQUI1NE0zZ3dlRFY0Tm5nM2VEYUFCb0FHZ0FhQUJvQUdnQWFBQm9BR2dBYUFCb0FHZ0FhQUJvQUdnQWFBQm9BR2dBYUFCb0FFZURxQUJWZzZXRHFBQm9RNmdBYUFCb0FIWER2Y09Ody8zRHZjTzl3NzNEdmNPOXc3M0R2Y085dzczRHZjTzl3NzNEdmNPOXc3M0R2Y085dzczRHZjTzl3NzNEdmNPOXc3M0R2Y085dzczRHZjTzl3NzNEbmNQQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQjdjUFB3bEdDVTRKTUFDQUFJQUFnQUJXQ1Y0SllRbUFBR2tKY0FsNENYd0pnQWt3QURBQU1BQXdBSWdKZ0FDTENaTUpnQUNaQ1o4Sm93bXJDWUFBc3drd0FGNEFYZ0I4QUlBQXV3a0FCTU1KeVFtQUFNNEpnQURWQ1RBQU1BQXdBREFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBcXdZV0JOa0lNQUF3QURBQU1BRGRDZUFKNkFudUNSNEU5Z2t3QVA0SkJRb05DakFBTUFDQUFCVUswd2lBQUIwS0pBb3NDalFLZ0FBd0FEd0tRd3FBQUVzS3ZRbWRDVk1LV3dvd0FEQUFnQUNBQUxjRU1BQ0FBR01LZ0FCckNqQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUFlQkRBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBSWtFUFFGekNub0tpUVNDQ29vS2tBcUpCSmdLb0Fxa0Nva0VHQUdzQ3JRS3ZBckJDakFBTUFESkN0RUtGUUhaQ3VFSy9nSHBDdkVLTUFBd0FEQUFNQUNBQUl3RStRb3dBSUFBUHdFQkN6QUFNQUF3QURBQU1BQ0FBQWtMRVFzd0FJQUFQd0VaQ3lFTGdBQU9DQ2tMTUFBeEN6a0xNQUF3QURBQU1BQXdBREFBWGdCZUFFRUxNQUF3QURBQU1BQXdBREFBTUFBd0FFa0xUUXRWQzRBQVhBdGtDNEFBaVFrd0FEQUFNQUF3QURBQU1BQXdBREFBYkF0eEMza0xnQXVGQzRzTE1BQXdBSk1MbHd1ZkN6QUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQXB3c3dBREFBTUFDQUFJQUFnQUN2QzRBQWdBQ0FBSUFBZ0FDQUFMY0xNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQXZ3dUFBTWNMZ0FDQUFJQUFnQUNBQUlBQXlndUFBSUFBZ0FDQUFJQUEwUXN3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQU5rTGdBQ0FBSUFBNEFzd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNKQ1I0RTZBc3dBREFBaHdId0M0QUErQXNBREFnTUVBd3dBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQ0FBSUFBR0F3ZERDVU1NQUF3QUMwTU5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RdzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhQUXd3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBRFVITlFjMUJ6VUhOUWMxQnpVSE5RYzJCekFBTUFBNUREVUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWRGRERBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBZ0FDQUFJQUFUUXhTREZvTU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QUY0QVhnQmVBRjRBWGdCZUFGNEFZZ3hlQUdvTVhnQnhESGtNZnd4ZUFJVU1YZ0JlQUkwTU1BQXdBREFBTUFBd0FGNEFYZ0NWREowTU1BQXdBREFBTUFCZUFGNEFwUXhlQUtzTXN3eTdERjRBd2d5OURNb01YZ0JlQUY0QVhnQmVBRjRBWGdCZUFGNEFYZ0RSRE5rTWVRQnFDZUFNM0F4OEFPWU03QXowRFBnTVhnQmVBRjRBWGdCZUFGNEFYZ0JlQUY0QVhnQmVBRjRBWGdCZUFGNEFYZ0NnQUFBTm9BQUhEUTRORmcwd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQWVEU1lOTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBSUFBZ0FDQUFJQUFnQUNBQUM0Tk1BQmVBRjRBTmcwd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FENE5SZzFPRFZZTlhnMW1EVEFBYlEwd0FEQUFNQUF3QURBQU1BQXdBREFBMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCblVOZWczQ0JZQU53Z1dGRGRvR2pBM2FCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdhVURad05wQTJvRGRvRzJnYXdEYmNOdnczSERkb0cyZ2JQRGRZTjNBM2ZEZVlOMmdic0RmTU4yZ2JhQnZvTi9nM2FCZ1lPRGc3YUJsNEFYZ0JlQUJZT1hnQmVBQ1VHMmdZZURsNEFKQTVlQUN3TzJ3M2FCdG9HTVE0NUR0b0cyZ2JhQnRvR1FRN2FCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdaSkRqVUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUIxRU8yZ1kxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RZFpEalVITlFjMUJ6VUhOUWMxQjJFT05RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSGFBNDFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUIzQU8yZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ1kxQnpVSE5RYzFCelVITlFjMUJ6VUhOUWMxQnpVSE5RYzFCelVITlFjMUIyRU8yZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ1pKRHRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQnRvRzJnYmFCdG9HMmdiYUJ0b0cyZ2JhQmtrT2VBNmdBS0FBb0FBd0FEQUFNQUF3QUtBQW9BQ2dBS0FBb0FDZ0FLQUFnQTR3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BRC8vd1FBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQTBBQXdBQkFBRUFBZ0FFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFLQUJNQUZ3QWVBQnNBR2dBZUFCY0FGZ0FTQUI0QUd3QVlBQThBR0FBY0FFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FHQUFZQUI0QUhnQWVBQk1BSGdCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBRmdBYkFCSUFIZ0FlQUI0QVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUJZQURRQVJBQjRBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FCQUFFQUFRQUJBQUVBQVVBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQWtBRmdBYUFCc0FHd0FiQUI0QUhRQWRBQjRBVHdBWEFCNEFEUUFlQUI0QUdnQWJBRThBVHdBT0FGQUFIUUFkQUIwQVR3QlBBQmNBVHdCUEFFOEFGZ0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBSFFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUIwQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdCUUFCNEFIZ0FlQUI0QVVBQlFBRkFBVUFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBZUFCNEFIZ0FlQUZBQVR3QkFBRThBVHdCUEFFQUFUd0JRQUZBQVR3QlFBQjRBSGdBZUFCNEFIZ0FlQUIwQUhRQWRBQjBBSGdBZEFCNEFEZ0JRQUZBQVVBQlFBRkFBSGdBZUFCNEFIZ0FlQUI0QUhnQlFBQjRBVUFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFKQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQWtBQ1FBSkFBa0FDUUFKQUFrQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBZUFCNEFIZ0FlQUZBQUhnQWVBQjRBS3dBckFGQUFVQUJRQUZBQUdBQlFBQ3NBS3dBckFDc0FIZ0FlQUZBQUhnQlFBRkFBVUFBckFGQUFLd0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFCQUFFQUFRQUJBQUVBQVFBQkFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FVQUFlQUI0QUhnQWVBQjRBSGdBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QVlBQTBBS3dBckFCNEFIZ0FiQUNzQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQURRQUVBQjRBQkFBRUFCNEFCQUFFQUJNQUJBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQVZnQldBRllBVmdCV0FGWUFWZ0JXQUZZQVZnQldBRllBVmdCV0FGWUFWZ0JXQUZZQVZnQldBRllBVmdCV0FGWUFWZ0JXQUZZQUt3QXJBQ3NBS3dBckFGWUFWZ0JXQUI0QUhnQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBR2dBYUFCb0FHQUFZQUI0QUhnQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBRXdBRUFDc0FFd0FUQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBQm9BR1FBWkFCNEFVQUJRQUFRQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFCTUFVQUFFQUFRQUJBQUVBQVFBQkFBRUFCNEFIZ0FFQUFRQUJBQUVBQVFBQkFCUUFGQUFCQUFFQUI0QUJBQUVBQVFBQkFCUUFGQUFTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JRQUZBQVVBQWVBQjRBVUFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QWVBRkFBQkFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBRkFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFVQUJRQUI0QUhnQVlBQk1BVUFBckFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBRUFBUUFCQUFFQUZBQUJBQUVBQVFBQkFBRUFGQUFCQUFFQUFRQVVBQUVBQVFBQkFBRUFBUUFLd0FyQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBRUFBUUFCQUFyQUNzQUhnQXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQWVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQlFBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBRkFBQkFBRUFBUUFCQUFFQUFRQUJBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQVFBQkFBTkFBMEFTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0FlQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUFRQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBRkFBVUFBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBS3dBckFDc0FVQUJRQUZBQVVBQXJBQ3NBQkFCUUFBUUFCQUFFQUFRQUJBQUVBQVFBS3dBckFBUUFCQUFyQUNzQUJBQUVBQVFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBQkFBckFDc0FLd0FyQUZBQVVBQXJBRkFBVUFCUUFBUUFCQUFyQUNzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QlFBRkFBR2dBYUFGQUFVQUJRQUZBQVVBQk1BQjRBR3dCUUFCNEFLd0FyQUNzQUJBQUVBQVFBS3dCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFGQUFVQUFyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUFyQUZBQVVBQXJBRkFBVUFBckFDc0FCQUFyQUFRQUJBQUVBQVFBQkFBckFDc0FLd0FyQUFRQUJBQXJBQ3NBQkFBRUFBUUFLd0FyQUNzQUJBQXJBQ3NBS3dBckFDc0FLd0FyQUZBQVVBQlFBRkFBS3dCUUFDc0FLd0FyQUNzQUt3QXJBQ3NBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dBRUFBUUFVQUJRQUZBQUJBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBQkFBRUFBUUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQXJBRkFBVUFCUUFGQUFVQUFyQUNzQUJBQlFBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQXJBQVFBQkFBRUFDc0FCQUFFQUFRQUt3QXJBRkFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQVVBQlFBQVFBQkFBckFDc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0FlQUJzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUFRQUJBQUVBQVFBQkFBRUFDc0FCQUFFQUFRQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBRkFBVUFBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFBUUFLd0FyQUFRQUJBQXJBQ3NBQkFBRUFBUUFLd0FyQUNzQUt3QXJBQ3NBS3dBckFBUUFCQUFyQUNzQUt3QXJBRkFBVUFBckFGQUFVQUJRQUFRQUJBQXJBQ3NBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dBZUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBRUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0JRQUZBQVVBQXJBRkFBVUFCUUFGQUFLd0FyQUNzQVVBQlFBQ3NBVUFBckFGQUFVQUFyQUNzQUt3QlFBRkFBS3dBckFDc0FVQUJRQUZBQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUNzQUt3QUVBQVFBQkFBRUFBUUFLd0FyQUNzQUJBQUVBQVFBS3dBRUFBUUFCQUFFQUNzQUt3QlFBQ3NBS3dBckFDc0FLd0FyQUFRQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRkFBVUFCUUFCNEFIZ0FlQUI0QUhnQWVBQnNBSGdBckFDc0FLd0FyQUNzQUJBQUVBQVFBQkFBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUJRQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0FyQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFyQUFRQUJBQUVBQ3NBQkFBRUFBUUFCQUFyQUNzQUt3QXJBQ3NBS3dBckFBUUFCQUFyQUZBQVVBQlFBQ3NBS3dBckFDc0FLd0JRQUZBQUJBQUVBQ3NBS3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBQjRBVUFBRUFBUUFCQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUNzQUt3QUVBRkFBQkFBRUFBUUFCQUFFQUFRQUJBQXJBQVFBQkFBRUFDc0FCQUFFQUFRQUJBQXJBQ3NBS3dBckFDc0FLd0FyQUFRQUJBQXJBQ3NBS3dBckFDc0FLd0FyQUZBQUt3QlFBRkFBQkFBRUFDc0FLd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUNzQVVBQlFBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFyQUFRQUJBQUVBQ3NBQkFBRUFBUUFCQUJRQUI0QUt3QXJBQ3NBS3dCUUFGQUFVQUFFQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUJBQUVBQ3NBS3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFCb0FVQUJRQUZBQVVBQlFBRkFBS3dBckFBUUFCQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUFyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QUVBQ3NBS3dBckFDc0FCQUFFQUFRQUJBQUVBQVFBS3dBRUFDc0FCQUFFQUFRQUJBQUVBQVFBQkFBRUFDc0FLd0FyQUNzQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFBUUFCQUFlQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUFxQUZ3QVhBQXFBQ29BS2dBcUFDb0FLZ0FxQUNzQUt3QXJBQ3NBR3dCY0FGd0FYQUJjQUZ3QVhBQmNBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQWVBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBRFFBTkFDc0FLd0FyQUNzQUt3QmNBRndBS3dCY0FDc0FLd0JjQUZ3QUt3QmNBQ3NBS3dCY0FDc0FLd0FyQUNzQUt3QXJBRndBWEFCY0FGd0FLd0JjQUZ3QVhBQmNBRndBWEFCY0FDc0FYQUJjQUZ3QUt3QmNBQ3NBWEFBckFDc0FYQUJjQUNzQVhBQmNBRndBWEFBcUFGd0FYQUFxQUNvQUtnQXFBQ29BS2dBckFDb0FLZ0JjQUNzQUt3QmNBRndBWEFCY0FGd0FLd0JjQUNzQUtnQXFBQ29BS2dBcUFDb0FLd0FyQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQUt3QXJBRndBWEFCY0FGd0FVQUFPQUE0QURnQU9BQjRBRGdBT0FBa0FEZ0FPQUEwQUNRQVRBQk1BRXdBVEFCTUFDUUFlQUJNQUhnQWVBQjRBQkFBRUFCNEFIZ0FlQUI0QUhnQWVBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBTkFBUUFIZ0FFQUI0QUJBQVdBQkVBRmdBUkFBUUFCQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBTkFBUUFCQUFFQUFRQUJBQU5BQVFBQkFCUUFGQUFVQUJRQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQ3NBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQURRQU5BQjRBSGdBZUFCNEFIZ0FlQUFRQUhnQWVBQjRBSGdBZUFCNEFLd0FlQUI0QURnQU9BQTBBRGdBZUFCNEFIZ0FlQUI0QUNRQUpBQ3NBS3dBckFDc0FLd0JjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUZ3QVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QU5BQTBBSGdBZUFCNEFIZ0JjQUZ3QVhBQmNBRndBWEFBcUFDb0FLZ0FxQUZ3QVhBQmNBRndBS2dBcUFDb0FYQUFxQUNvQUtnQmNBRndBS2dBcUFDb0FLZ0FxQUNvQUtnQmNBRndBWEFBcUFDb0FLZ0FxQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FYQUFxQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQUtnQXFBQ29BS2dBcUFDb0FVQUJRQUZBQVVBQlFBRkFBS3dCUUFDc0FLd0FyQUNzQUt3QlFBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBZUFGQUFVQUJRQUZBQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUZnQVdBQllBRmdBV0FCWUFGa0FXUUJaQUZrQVdRQlpBRmtBV1FCWkFGa0FXUUJaQUZrQVdRQlpBRmtBV1FCWkFGa0FXUUJaQUZrQVdRQlpBRmtBV1FCWkFGa0FXUUJaQUZrQVdRQmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFBckFGQUFVQUJRQUZBQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUFyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQVVBQlFBRkFBVUFBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFLd0JRQUZBQVVBQlFBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBVUFCUUFGQUFLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QUVBQVFBQkFBZUFBMEFIZ0FlQUI0QUhnQWVBQjRBSGdCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QU5BRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFlQUI0QVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUEwQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUJZQUVRQXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFEUUFOQUEwQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUJRQUZBQUJBQUVBQVFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBUUFCQUFFQUEwQURRQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBVUFCUUFDc0FCQUFFQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FEUUFOQUJVQVhBQU5BQjRBRFFBYkFGd0FLZ0FyQUNzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBS3dBckFCNEFIZ0FUQUJNQURRQU5BQTRBSGdBVEFCTUFIZ0FFQUFRQUJBQUpBQ3NBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBQVFBQkFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQkFCUUFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFDc0FLd0FyQUNzQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBS3dBckFDc0FLd0FlQUNzQUt3QXJBQk1BRXdCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FDc0FLd0JjQUZ3QVhBQmNBRndBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUNzQUt3QXJBQ3NBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBS3dBckFDc0FLd0FyQUNzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QmNBQ3NBS3dBckFDb0FLZ0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFBUUFCQUFFQUNzQUt3QWVBQjRBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FyQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXJBQ3NBQkFCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFDc0FLd0FyQUNzQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFDc0FLd0FyQUNzQUtnQXFBQ29BS2dBcUFDb0FLZ0JjQUNvQUtnQXFBQ29BS2dBcUFDc0FLd0FFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBckFBUUFCQUFFQUFRQUJBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFBUUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQURRQU5BQjRBRFFBTkFBMEFEUUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUNzQUt3QXJBQVFBQkFBRUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBVUFCUUFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUhnQWVBQjRBSGdCUUFGQUFVQUJRQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQXJBQ3NBS3dBTkFBMEFEUUFOQUEwQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QXJBQ3NBS3dCUUFGQUFVQUJMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBTkFBMEFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUJBQUVBQVFBSGdBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUZBQVVBQlFBRkFBQkFCUUFGQUFVQUJRQUFRQUJBQUVBRkFBVUFBRUFBUUFCQUFyQUNzQUt3QXJBQ3NBS3dBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBS3dBRUFBUUFCQUFFQUFRQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBckFDc0FVQUJRQUZBQVVBQlFBRkFBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFLd0JRQUNzQVVBQXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFLd0FyQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQ3NBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBRkFBSGdBZUFCNEFVQUJRQUZBQUt3QWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBRkFBVUFCUUFGQUFLd0FyQUI0QUhnQWVBQjRBSGdBZUFDc0FIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FyQUNzQVVBQlFBRkFBS3dBZUFCNEFIZ0FlQUI0QUhnQWVBQTRBSGdBckFBMEFEUUFOQUEwQURRQU5BQTBBQ1FBTkFBMEFEUUFJQUFRQUN3QUVBQVFBRFFBSkFBMEFEUUFNQUIwQUhRQWVBQmNBRndBV0FCY0FGd0FYQUJZQUZ3QWRBQjBBSGdBZUFCUUFGQUFVQUEwQUFRQUJBQVFBQkFBRUFBUUFCQUFKQUJvQUdnQWFBQm9BR2dBYUFCb0FHZ0FlQUJjQUZ3QWRBQlVBRlFBZUFCNEFIZ0FlQUI0QUhnQVlBQllBRVFBVkFCVUFGUUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQU5BQjRBRFFBTkFBMEFEUUFlQUEwQURRQU5BQWNBSGdBZUFCNEFIZ0FyQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQVVBQlFBQ3NBS3dCUEFGQUFVQUJRQUZBQVVBQWVBQjRBSGdBV0FCRUFUd0JRQUU4QVR3QlBBRThBVUFCUUFGQUFVQUJRQUI0QUhnQWVBQllBRVFBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQ3NBR3dBYkFCc0FHd0FiQUJzQUd3QWFBQnNBR3dBYkFCc0FHd0FiQUJzQUd3QWJBQnNBR3dBYkFCc0FHd0FhQUJzQUd3QWJBQnNBR2dBYkFCc0FHZ0FiQUJzQUd3QWJBQnNBR3dBYkFCc0FHd0FiQUJzQUd3QWJBQnNBR3dBYkFCc0FCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQjRBSGdCUUFCb0FIZ0FkQUI0QVVBQWVBQm9BSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBVHdBZUFGQUFHd0FlQUI0QVVBQlFBRkFBVUFCUUFCNEFIZ0FlQUIwQUhRQWVBRkFBSGdCUUFCNEFVQUFlQUZBQVR3QlFBRkFBSGdBZUFCNEFIZ0FlQUI0QUhnQlFBRkFBVUFCUUFGQUFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdCUUFCNEFVQUJRQUZBQVVBQlBBRThBVUFCUUFGQUFVQUJRQUU4QVVBQlFBRThBVUFCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JRQUZBQVVBQlFBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBSGdBZUFGQUFVQUJRQUZBQVR3QWVBQjRBS3dBckFDc0FLd0FkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWRBQjRBSFFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIUUFlQUIwQUhRQWVBQjRBSGdBZEFCMEFIZ0FlQUIwQUhnQWVBQjRBSFFBZUFCMEFHd0FiQUI0QUhRQWVBQjRBSGdBZUFCMEFIZ0FlQUIwQUhRQWRBQjBBSGdBZUFCMEFIZ0FkQUI0QUhRQWRBQjBBSFFBZEFCMEFIZ0FkQUI0QUhnQWVBQjRBSGdBZEFCMEFIUUFkQUI0QUhnQWVBQjRBSFFBZEFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIUUFlQUI0QUhnQWRBQjRBSGdBZUFCNEFIZ0FkQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSFFBZEFCNEFIZ0FkQUIwQUhRQWRBQjRBSGdBZEFCMEFIZ0FlQUIwQUhRQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWRBQjBBSGdBZUFCMEFIUUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjBBSGdBZUFCNEFIUUFlQUI0QUhnQWVBQjRBSGdBZUFCMEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZEFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQlFBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQVdBQkVBRmdBUkFCNEFIZ0FlQUI0QUhnQWVBQjBBSGdBZUFCNEFIZ0FlQUI0QUhnQWxBQ1VBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBRmdBUkFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUNVQUpRQWxBQ1VBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUUFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUI0QUhnQWVBQjRBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIZ0FlQUIwQUhRQWRBQjBBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZEFCMEFIZ0FkQUIwQUhRQWRBQjBBSFFBZEFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZEFCMEFIZ0FlQUIwQUhRQWVBQjRBSGdBZUFCMEFIUUFlQUI0QUhnQWVBQjBBSFFBZEFCNEFIZ0FkQUI0QUhnQWRBQjBBSFFBZEFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSFFBZEFCMEFIUUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FkQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFKUUFsQUNVQUpRQWVBQjBBSFFBZUFCNEFIUUFlQUI0QUhnQWVBQjBBSFFBZUFCNEFIZ0FlQUNVQUpRQWRBQjBBSlFBZUFDVUFKUUFsQUNBQUpRQWxBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUpRQWxBQ1VBSGdBZUFCNEFIZ0FkQUI0QUhRQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSFFBZEFCNEFIUUFkQUIwQUhnQWRBQ1VBSFFBZEFCNEFIUUFkQUI0QUhRQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FsQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjBBSFFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUhRQWRBQjBBSFFBbEFCNEFKUUFsQUNVQUhRQWxBQ1VBSFFBZEFCMEFKUUFsQUIwQUhRQWxBQjBBSFFBbEFDVUFKUUFlQUIwQUhnQWVBQjRBSGdBZEFCMEFKUUFkQUIwQUhRQWRBQjBBSFFBbEFDVUFKUUFsQUNVQUhRQWxBQ1VBSUFBbEFCMEFIUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFIZ0FlQUI0QUpRQWxBQ0FBSUFBZ0FDQUFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZEFCNEFIZ0FlQUJjQUZ3QVhBQmNBRndBWEFCNEFFd0FUQUNVQUhnQWVBQjRBRmdBUkFCWUFFUUFXQUJFQUZnQVJBQllBRVFBV0FCRUFGZ0FSQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FXQUJFQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUZnQVJBQllBRVFBV0FCRUFGZ0FSQUJZQUVRQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQllBRVFBV0FCRUFGZ0FSQUJZQUVRQVdBQkVBRmdBUkFCWUFFUUFXQUJFQUZnQVJBQllBRVFBV0FCRUFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFGZ0FSQUJZQUVRQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQllBRVFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhRQWRBQjBBSFFBZEFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBS3dBckFDc0FIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFCNEFIZ0FlQUI0QUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBRUFBUUFCQUFlQUI0QUt3QXJBQ3NBS3dBckFCTUFEUUFOQUEwQVVBQVRBQTBBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FLd0FyQUNzQVVBQU5BQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FFQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUNzQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFBMEFEUUFOQUEwQURRQU5BQTBBRFFBZUFBMEFGZ0FOQUI0QUhnQVhBQmNBSGdBZUFCY0FGd0FXQUJFQUZnQVJBQllBRVFBV0FCRUFEUUFOQUEwQURRQVRBRkFBRFFBTkFCNEFEUUFOQUI0QUhnQWVBQjRBSGdBTUFBd0FEUUFOQUEwQUhnQU5BQTBBRmdBTkFBMEFEUUFOQUEwQURRQU5BQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDc0FKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBckFDc0FLd0FyQUEwQUVRQVJBQ1VBSlFCSEFGY0FWd0FXQUJFQUZnQVJBQllBRVFBV0FCRUFGZ0FSQUNVQUpRQVdBQkVBRmdBUkFCWUFFUUFXQUJFQUZRQVdBQkVBRVFBbEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFBUUFCQUFFQUFRQUJBQUVBQ1VBVndCWEFGY0FWd0EyQUNVQUpRQlhBRmNBVndCSEFFY0FKUUFsQUNVQUt3QlJBRmNBVVFCWEFGRUFWd0JSQUZjQVVRQlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZFQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCUkFGY0FVUUJYQUZFQVZ3QlhBRmNBVndCWEFGY0FVUUJYQUZjQVZ3QlhBRmNBVndCUkFGRUFLd0FyQUFRQUJBQVZBQlVBUndCSEFGY0FGUUJSQUZjQVVRQlhBRkVBVndCUkFGY0FVUUJYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGRUFWd0JSQUZjQVVRQlhBRmNBVndCWEFGY0FWd0JSQUZjQVZ3QlhBRmNBVndCWEFGRUFVUUJYQUZjQVZ3QlhBQlVBVVFCSEFFY0FWd0FyQUNzQUt3QXJBQ3NBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FLd0FyQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QXJBQ1VBSlFCWEFGY0FWd0JYQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQUt3QXJBQ3NBS3dBckFDVUFKUUFsQUNVQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBVVFCUkFGRUFVUUJSQUZFQVVRQlJBRkVBVVFCUkFGRUFVUUJSQUZFQVVRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDc0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0FsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBRThBVHdCUEFFOEFUd0JQQUU4QVR3QWxBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUJYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFFY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBS3dBckFDc0FKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFEUUFUQUEwQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUZBQUJBQUVBQVFBQkFBZUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFIZ0JRQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QVVBQlFBQVFBQkFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQVFBQkFBZUFBMEFEUUFOQUEwQURRQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBVUFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQlFBQjRBSGdBZUFCNEFIZ0FlQUZBQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFRQVVBQlFBRkFBQkFCUUFGQUFVQUJRQUFRQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBUUFCQUFFQUFRQUJBQWVBQjRBSGdBZUFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFIZ0FlQUJvQUhnQXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQURnQU9BQk1BRXdBckFDc0FLd0FyQUNzQUt3QXJBQ3NBQkFBRUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFRQUJBQUVBQVFBQkFBRUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBTkFBMEFTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0FyQUNzQUt3QXJBQ3NBS3dBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFCUUFGQUFVQUJRQUZBQVVBQWVBQjRBSGdCUUFBNEFVQUFyQUNzQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBMEFEUUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFCNEFXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUNzQUt3QXJBQVFBSGdBZUFCNEFIZ0FlQUI0QURRQU5BQTBBSGdBZUFCNEFIZ0FyQUZBQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QXJBQ3NBS3dBckFCNEFIZ0JjQUZ3QVhBQmNBRndBS2dCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FYQUJjQUZ3QVhBQmNBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUZBQVVBQlFBQVFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQVFBQkFBckFDc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0FyQUNzQUhnQU5BQTBBRFFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QUtnQXFBQ29BWEFBcUFDb0FLZ0JjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUFxQUZ3QUtnQXFBQ29BWEFCY0FDb0FLZ0JjQUZ3QVhBQmNBRndBS2dBcUFGd0FLZ0JjQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGd0FYQUJjQUNvQUtnQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFBUUFCQUFFQUEwQURRQlFBRkFBVUFBRUFBUUFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFBckFDc0FVQUJRQUZBQVVBQlFBRkFBS3dBckFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQURRQUVBQVFBS3dBckFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FLd0FyQUNzQUt3QXJBQ3NBVkFCVkFGVUFWUUJWQUZVQVZRQlZBRlVBVlFCVkFGVUFWUUJWQUZVQVZRQlZBRlVBVlFCVkFGVUFWUUJWQUZVQVZRQlZBRlVBVlFCVUFGVUFWUUJWQUZVQVZRQlZBRlVBVlFCVkFGVUFWUUJWQUZVQVZRQlZBRlVBVlFCVkFGVUFWUUJWQUZVQVZRQlZBRlVBVlFCVkFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUZrQVdRQlpBRmtBV1FCWkFGa0FXUUJaQUZrQVdRQlpBRmtBV1FCWkFGa0FXUUJaQUZrQUt3QXJBQ3NBS3dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FLd0FyQUNzQUt3QUdBQVlBQmdBR0FBWUFCZ0FHQUFZQUJnQUdBQVlBQmdBR0FBWUFCZ0FHQUFZQUJnQUdBQVlBQmdBR0FBWUFCZ0FHQUFZQUJnQUdBQVlBQmdBR0FBWUFWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBQ1VBSlFCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBSlFBbEFDVUFKUUFsQUNVQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFLd0FyQUNzQUt3QXJBRllBQkFCV0FGWUFWZ0JXQUZZQVZnQldBRllBVmdCV0FCNEFWZ0JXQUZZQVZnQldBRllBVmdCV0FGWUFWZ0JXQUZZQVZnQXJBRllBVmdCV0FGWUFWZ0FyQUZZQUt3QldBRllBS3dCV0FGWUFLd0JXQUZZQVZnQldBRllBVmdCV0FGWUFWZ0JXQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUVRQVdBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFhQUI0QUt3QXJBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUdBQVJBQkVBR0FBWUFCTUFFd0FXQUJFQUZBQXJBQ3NBS3dBckFDc0FLd0FFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFDVUFKUUFsQUNVQUpRQVdBQkVBRmdBUkFCWUFFUUFXQUJFQUZnQVJBQllBRVFBbEFDVUFGZ0FSQUNVQUpRQWxBQ1VBSlFBbEFDVUFFUUFsQUJFQUt3QVZBQlVBRXdBVEFDVUFGZ0FSQUJZQUVRQVdBQkVBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ3NBSlFBYkFCb0FKUUFyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFBY0FLd0FUQUNVQUpRQWJBQm9BSlFBbEFCWUFFUUFsQUNVQUVRQWxBQkVBSlFCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFCVUFGUUFsQUNVQUpRQVRBQ1VBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBQllBSlFBUkFDVUFKUUFsQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0FXQUNVQUVRQWxBQllBRVFBUkFCWUFFUUFSQUJVQVZ3QlJBRkVBVVFCUkFGRUFVUUJSQUZFQVVRQlJBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUVjQVJ3QXJBQ3NBVndCWEFGY0FWd0JYQUZjQUt3QXJBRmNBVndCWEFGY0FWd0JYQUNzQUt3QlhBRmNBVndCWEFGY0FWd0FyQUNzQVZ3QlhBRmNBS3dBckFDc0FHZ0FiQUNVQUpRQWxBQnNBR3dBckFCNEFIZ0FlQUI0QUhnQWVBQjRBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBRUFBUUFCQUFRQUIwQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQURRQU5BQTBBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0FyQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQlFBRkFBSGdBZUFCNEFLd0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQ3NBS3dBckFCNEFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBQkFBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFBUUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFBUUFLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FEUUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFBMEFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFCNEFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBVUFBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFDc0FLd0FyQUZBQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUEwQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFCNEFIZ0JRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FEUUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUNzQUt3QXJBQjRBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQUJBQUVBQVFBS3dBRUFBUUFLd0FyQUNzQUt3QXJBQVFBQkFBRUFBUUFVQUJRQUZBQVVBQXJBRkFBVUFCUUFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FCQUFFQUFRQUt3QXJBQ3NBS3dBRUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBRFFBTkFBMEFEUUFOQUEwQURRQU5BQjRBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFCNEFVQUJRQUZBQVVBQlFBRkFBVUFCUUFCNEFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFBMEFEUUFOQUEwQURRQU5BQlFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QU5BQTBBRFFBTkFBMEFEUUFOQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBS3dBckFDc0FIZ0FlQUI0QUhnQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFBUUFCQUFFQUEwQURRQWVBQjRBSGdBZUFCNEFLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FCQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFlQUI0QUhnQU5BQTBBRFFBTkFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQ3NBS3dBckFDc0FLd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QU5BQTBBRFFBTkFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUJBQWVBQTRBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBRUFGQUFVQUJRQUZBQURRQU5BQjRBRFFBZUFBUUFCQUFFQUI0QUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBVUFBT0FGQUFEUUFOQUEwQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBTkFBMEFIZ0FOQUEwQUhnQUVBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBS3dCUUFGQUFVQUJRQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUEwQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFLd0FyQUNzQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFDc0FLd0FyQUNzQUJBQUVBQVFBQkFBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FVQUJRQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBUUFCQUFFQUFRQUJBQXJBQ3NBQkFBRUFDc0FLd0FFQUFRQUJBQXJBQ3NBVUFBckFDc0FLd0FyQUNzQUt3QUVBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBQkFBRUFDc0FLd0FFQUFRQUJBQUVBQVFBQkFBRUFDc0FLd0FyQUFRQUJBQUVBQVFBQkFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FCQUFFQUFRQUJBQUVBQVFBQkFCUUFGQUFVQUJRQUEwQURRQU5BQTBBSGdCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFDc0FEUUFyQUI0QUt3QXJBQVFBQkFBRUFBUUFVQUJRQUI0QVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBRUFBUUFCQUFFQUFRQUJBQUVBQ3NBS3dBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBT0FBMEFEUUFUQUJNQUhnQWVBQjRBRFFBTkFBMEFEUUFOQUEwQURRQU5BQTBBRFFBTkFBMEFEUUFOQUEwQVVBQlFBRkFBVUFBRUFBUUFLd0FyQUFRQURRQU5BQjRBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0FyQUNzQUt3QXJBQ3NBS3dBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFBckFDc0FLd0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBckFDc0FLd0FyQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVhBQmNBQTBBRFFBTkFDb0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFBUUFCQUFFQUZBQUJBQUVBQVFBQkFBT0FCNEFEUUFOQUEwQURRQU9BQjRBQkFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFVQUJRQUZBQVVBQXJBQ3NBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBMEFEUUFOQUNzQURnQU9BQTRBRFFBTkFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFDc0FCQUFFQUFRQUJBQUVBQVFBQkFBRUFGQUFEUUFOQUEwQURRQU5BQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBT0FCTUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBckFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUNzQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBQkFBckFDc0FLd0FFQUNzQUJBQUVBQ3NBQkFBRUFBUUFCQUFFQUFRQUJBQlFBQVFBS3dBckFDc0FLd0FyQUNzQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBRFFBTkFBMEFEUUFOQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBU0FCSUFFZ0FRd0JEQUVNQVVBQlFBRkFBVUFCREFGQUFVQUJRQUVnQVF3QklBRU1BVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBU0FCREFFTUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJJQUVNQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQUt3QXJBQ3NBS3dBTkFBMEFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQVFBQkFBRUFBUUFCQUFOQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBQkFBRUFBMEFEUUFOQUI0QUhnQWVBQjRBSGdBZUFGQUFVQUJRQUZBQURRQWVBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQVVBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FCQUFFQUFRQUJBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFFY0FSd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QWVBQVFBQkFBTkFBUUFCQUFFQUFRQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FIZ0FlQUI0QUhnQWVBQjRBSGdBckFDc0FIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBQkFBRUFBUUFCQUFFQUI0QUhnQWVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFIZ0FlQUFRQUJBQUVBQVFBQkFBRUFBUUFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQUVBQVFBQkFBRUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQjRBSGdBRUFBUUFCQUFlQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQ3NBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FyQUZBQVVBQXJBQ3NBVUFBckFDc0FVQUJRQUNzQUt3QlFBRkFBVUFCUUFDc0FIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBckFGQUFVQUJRQUZBQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QWVBQjRBVUFCUUFGQUFVQUJRQUNzQVVBQXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQWVBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBS3dBckFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUI0QUhnQWVBQjRBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FFQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUJBQWVBQjRBRFFBTkFBMEFEUUFlQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFBUUFCQUFFQUFRQUJBQXJBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FCQUFFQUFRQUJBQUVBQVFBQkFBckFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBckFDc0FCQUFFQUFRQUJBQUVBQVFBQkFBckFBUUFCQUFyQUFRQUJBQUVBQVFBQkFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBUUFCQUFFQUFRQUJBQUVBQVFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBSGdBZUFCNEFIZ0FFQUFRQUJBQUVBQVFBQkFBRUFDc0FLd0FyQUNzQUt3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBQ3NBS3dBckFDc0FGZ0FXQUZBQVVBQlFBRkFBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUFyQUZBQUt3QXJBRkFBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUJRQUZBQVVBQXJBRkFBS3dCUUFDc0FLd0FyQUNzQUt3QXJBRkFBS3dBckFDc0FLd0JRQUNzQVVBQXJBRkFBS3dCUUFGQUFVQUFyQUZBQVVBQXJBRkFBS3dBckFGQUFLd0JRQUNzQVVBQXJBRkFBS3dCUUFDc0FVQUJRQUNzQVVBQXJBQ3NBVUFCUUFGQUFVQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUFyQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQXJBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFCNEFIZ0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0FsQUNVQUpRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWVBQ1VBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSGdBZUFDVUFKUUFsQUNVQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ2tBS1FBcEFDa0FLUUFwQUNrQUtRQXBBQ2tBS1FBcEFDa0FLUUFwQUNrQUtRQXBBQ2tBS1FBcEFDa0FLUUFwQUNrQUtRQWxBQ1VBSlFBbEFDVUFJQUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQjRBSGdBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUhnQWVBQ1VBSlFBbEFDVUFKUUFlQUNVQUpRQWxBQ1VBSlFBZ0FDQUFJQUFsQUNVQUlBQWxBQ1VBSUFBZ0FDQUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUlRQWhBQ0VBSVFBaEFDVUFKUUFnQUNBQUpRQWxBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSUFBZ0FDQUFJQUFsQUNVQUpRQWxBQ0FBSlFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBbEFDVUFKUUFnQUNVQUpRQWxBQ1VBSUFBZ0FDQUFKUUFnQUNBQUlBQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFlQUNVQUhnQWxBQjRBSlFBbEFDVUFKUUFsQUNBQUpRQWxBQ1VBSlFBZUFDVUFIZ0FlQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSGdBZUFCNEFIZ0FlQUI0QUhnQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFJQUFnQUNVQUpRQWxBQ1VBSUFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSUFBbEFDVUFKUUFsQUNBQUlBQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFCNEFIZ0FlQUI0QUhnQWVBQ1VBSlFBbEFDVUFKUUFsQUNVQUlBQWdBQ0FBSlFBbEFDVUFJQUFnQUNBQUlBQWdBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFGd0FYQUJjQUZRQVZBQlVBSGdBZUFCNEFIZ0FsQUNVQUpRQWdBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUlBQWdBQ0FBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSUFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFJQUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FsQUNVQUpRQWxBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUpRQWxBQ1VBSlFBbEFDVUFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDQUFJQUFnQUNBQUlBQWxBQ0FBSUFBbEFDVUFKUUFsQUNVQUpRQWdBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSlFBbEFDVUFJQUFnQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNzQUt3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBckFBUUFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQSc7XG5cbiAgICAvKiBAZmxvdyAqL1xyXG4gICAgdmFyIExFVFRFUl9OVU1CRVJfTU9ESUZJRVIgPSA1MDtcclxuICAgIC8vIE5vbi10YWlsb3JhYmxlIExpbmUgQnJlYWtpbmcgQ2xhc3Nlc1xyXG4gICAgdmFyIEJLID0gMTsgLy8gIENhdXNlIGEgbGluZSBicmVhayAoYWZ0ZXIpXHJcbiAgICB2YXIgQ1IgPSAyOyAvLyAgQ2F1c2UgYSBsaW5lIGJyZWFrIChhZnRlciksIGV4Y2VwdCBiZXR3ZWVuIENSIGFuZCBMRlxyXG4gICAgdmFyIExGID0gMzsgLy8gIENhdXNlIGEgbGluZSBicmVhayAoYWZ0ZXIpXHJcbiAgICB2YXIgQ00gPSA0OyAvLyAgUHJvaGliaXQgYSBsaW5lIGJyZWFrIGJldHdlZW4gdGhlIGNoYXJhY3RlciBhbmQgdGhlIHByZWNlZGluZyBjaGFyYWN0ZXJcclxuICAgIHZhciBOTCA9IDU7IC8vICBDYXVzZSBhIGxpbmUgYnJlYWsgKGFmdGVyKVxyXG4gICAgdmFyIFdKID0gNzsgLy8gIFByb2hpYml0IGxpbmUgYnJlYWtzIGJlZm9yZSBhbmQgYWZ0ZXJcclxuICAgIHZhciBaVyA9IDg7IC8vICBQcm92aWRlIGEgYnJlYWsgb3Bwb3J0dW5pdHlcclxuICAgIHZhciBHTCA9IDk7IC8vICBQcm9oaWJpdCBsaW5lIGJyZWFrcyBiZWZvcmUgYW5kIGFmdGVyXHJcbiAgICB2YXIgU1AgPSAxMDsgLy8gRW5hYmxlIGluZGlyZWN0IGxpbmUgYnJlYWtzXHJcbiAgICB2YXIgWldKID0gMTE7IC8vIFByb2hpYml0IGxpbmUgYnJlYWtzIHdpdGhpbiBqb2luZXIgc2VxdWVuY2VzXHJcbiAgICAvLyBCcmVhayBPcHBvcnR1bml0aWVzXHJcbiAgICB2YXIgQjIgPSAxMjsgLy8gIFByb3ZpZGUgYSBsaW5lIGJyZWFrIG9wcG9ydHVuaXR5IGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGNoYXJhY3RlclxyXG4gICAgdmFyIEJBID0gMTM7IC8vICBHZW5lcmFsbHkgcHJvdmlkZSBhIGxpbmUgYnJlYWsgb3Bwb3J0dW5pdHkgYWZ0ZXIgdGhlIGNoYXJhY3RlclxyXG4gICAgdmFyIEJCID0gMTQ7IC8vICBHZW5lcmFsbHkgcHJvdmlkZSBhIGxpbmUgYnJlYWsgb3Bwb3J0dW5pdHkgYmVmb3JlIHRoZSBjaGFyYWN0ZXJcclxuICAgIHZhciBIWSA9IDE1OyAvLyAgUHJvdmlkZSBhIGxpbmUgYnJlYWsgb3Bwb3J0dW5pdHkgYWZ0ZXIgdGhlIGNoYXJhY3RlciwgZXhjZXB0IGluIG51bWVyaWMgY29udGV4dFxyXG4gICAgdmFyIENCID0gMTY7IC8vICAgUHJvdmlkZSBhIGxpbmUgYnJlYWsgb3Bwb3J0dW5pdHkgY29udGluZ2VudCBvbiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uXHJcbiAgICAvLyBDaGFyYWN0ZXJzIFByb2hpYml0aW5nIENlcnRhaW4gQnJlYWtzXHJcbiAgICB2YXIgQ0wgPSAxNzsgLy8gIFByb2hpYml0IGxpbmUgYnJlYWtzIGJlZm9yZVxyXG4gICAgdmFyIENQID0gMTg7IC8vICBQcm9oaWJpdCBsaW5lIGJyZWFrcyBiZWZvcmVcclxuICAgIHZhciBFWCA9IDE5OyAvLyAgUHJvaGliaXQgbGluZSBicmVha3MgYmVmb3JlXHJcbiAgICB2YXIgSU4gPSAyMDsgLy8gIEFsbG93IG9ubHkgaW5kaXJlY3QgbGluZSBicmVha3MgYmV0d2VlbiBwYWlyc1xyXG4gICAgdmFyIE5TID0gMjE7IC8vICBBbGxvdyBvbmx5IGluZGlyZWN0IGxpbmUgYnJlYWtzIGJlZm9yZVxyXG4gICAgdmFyIE9QID0gMjI7IC8vICBQcm9oaWJpdCBsaW5lIGJyZWFrcyBhZnRlclxyXG4gICAgdmFyIFFVID0gMjM7IC8vICBBY3QgbGlrZSB0aGV5IGFyZSBib3RoIG9wZW5pbmcgYW5kIGNsb3NpbmdcclxuICAgIC8vIE51bWVyaWMgQ29udGV4dFxyXG4gICAgdmFyIElTID0gMjQ7IC8vICBQcmV2ZW50IGJyZWFrcyBhZnRlciBhbnkgYW5kIGJlZm9yZSBudW1lcmljXHJcbiAgICB2YXIgTlUgPSAyNTsgLy8gIEZvcm0gbnVtZXJpYyBleHByZXNzaW9ucyBmb3IgbGluZSBicmVha2luZyBwdXJwb3Nlc1xyXG4gICAgdmFyIFBPID0gMjY7IC8vICBEbyBub3QgYnJlYWsgZm9sbG93aW5nIGEgbnVtZXJpYyBleHByZXNzaW9uXHJcbiAgICB2YXIgUFIgPSAyNzsgLy8gIERvIG5vdCBicmVhayBpbiBmcm9udCBvZiBhIG51bWVyaWMgZXhwcmVzc2lvblxyXG4gICAgdmFyIFNZID0gMjg7IC8vICBQcmV2ZW50IGEgYnJlYWsgYmVmb3JlOyBhbmQgYWxsb3cgYSBicmVhayBhZnRlclxyXG4gICAgLy8gT3RoZXIgQ2hhcmFjdGVyc1xyXG4gICAgdmFyIEFJID0gMjk7IC8vICBBY3QgbGlrZSBBTCB3aGVuIHRoZSByZXNvbHZlZEVBVyBpcyBOOyBvdGhlcndpc2U7IGFjdCBhcyBJRFxyXG4gICAgdmFyIEFMID0gMzA7IC8vICBBcmUgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzIG9yIHN5bWJvbHMgdGhhdCBhcmUgdXNlZCB3aXRoIGFscGhhYmV0aWMgY2hhcmFjdGVyc1xyXG4gICAgdmFyIENKID0gMzE7IC8vICBUcmVhdCBhcyBOUyBvciBJRCBmb3Igc3RyaWN0IG9yIG5vcm1hbCBicmVha2luZy5cclxuICAgIHZhciBFQiA9IDMyOyAvLyAgRG8gbm90IGJyZWFrIGZyb20gZm9sbG93aW5nIEVtb2ppIE1vZGlmaWVyXHJcbiAgICB2YXIgRU0gPSAzMzsgLy8gIERvIG5vdCBicmVhayBmcm9tIHByZWNlZGluZyBFbW9qaSBCYXNlXHJcbiAgICB2YXIgSDIgPSAzNDsgLy8gIEZvcm0gS29yZWFuIHN5bGxhYmxlIGJsb2Nrc1xyXG4gICAgdmFyIEgzID0gMzU7IC8vICBGb3JtIEtvcmVhbiBzeWxsYWJsZSBibG9ja3NcclxuICAgIHZhciBITCA9IDM2OyAvLyAgRG8gbm90IGJyZWFrIGFyb3VuZCBhIGZvbGxvd2luZyBoeXBoZW47IG90aGVyd2lzZSBhY3QgYXMgQWxwaGFiZXRpY1xyXG4gICAgdmFyIElEID0gMzc7IC8vICBCcmVhayBiZWZvcmUgb3IgYWZ0ZXI7IGV4Y2VwdCBpbiBzb21lIG51bWVyaWMgY29udGV4dFxyXG4gICAgdmFyIEpMID0gMzg7IC8vICBGb3JtIEtvcmVhbiBzeWxsYWJsZSBibG9ja3NcclxuICAgIHZhciBKViA9IDM5OyAvLyAgRm9ybSBLb3JlYW4gc3lsbGFibGUgYmxvY2tzXHJcbiAgICB2YXIgSlQgPSA0MDsgLy8gIEZvcm0gS29yZWFuIHN5bGxhYmxlIGJsb2Nrc1xyXG4gICAgdmFyIFJJID0gNDE7IC8vICBLZWVwIHBhaXJzIHRvZ2V0aGVyLiBGb3IgcGFpcnM7IGJyZWFrIGJlZm9yZSBhbmQgYWZ0ZXIgb3RoZXIgY2xhc3Nlc1xyXG4gICAgdmFyIFNBID0gNDI7IC8vICBQcm92aWRlIGEgbGluZSBicmVhayBvcHBvcnR1bml0eSBjb250aW5nZW50IG9uIGFkZGl0aW9uYWwsIGxhbmd1YWdlLXNwZWNpZmljIGNvbnRleHQgYW5hbHlzaXNcclxuICAgIHZhciBYWCA9IDQzOyAvLyAgSGF2ZSBhcyB5ZXQgdW5rbm93biBsaW5lIGJyZWFraW5nIGJlaGF2aW9yIG9yIHVuYXNzaWduZWQgY29kZSBwb3NpdGlvbnNcclxuICAgIHZhciBCUkVBS19NQU5EQVRPUlkgPSAnISc7XHJcbiAgICB2YXIgQlJFQUtfTk9UX0FMTE9XRUQgPSAnw5cnO1xyXG4gICAgdmFyIEJSRUFLX0FMTE9XRUQgPSAnw7cnO1xyXG4gICAgdmFyIFVuaWNvZGVUcmllID0gY3JlYXRlVHJpZUZyb21CYXNlNjQoYmFzZTY0KTtcclxuICAgIHZhciBBTFBIQUJFVElDUyA9IFtBTCwgSExdO1xyXG4gICAgdmFyIEhBUkRfTElORV9CUkVBS1MgPSBbQkssIENSLCBMRiwgTkxdO1xyXG4gICAgdmFyIFNQQUNFID0gW1NQLCBaV107XHJcbiAgICB2YXIgUFJFRklYX1BPU1RGSVggPSBbUFIsIFBPXTtcclxuICAgIHZhciBMSU5FX0JSRUFLUyA9IEhBUkRfTElORV9CUkVBS1MuY29uY2F0KFNQQUNFKTtcclxuICAgIHZhciBLT1JFQU5fU1lMTEFCTEVfQkxPQ0sgPSBbSkwsIEpWLCBKVCwgSDIsIEgzXTtcclxuICAgIHZhciBIWVBIRU4gPSBbSFksIEJBXTtcclxuICAgIHZhciBjb2RlUG9pbnRzVG9DaGFyYWN0ZXJDbGFzc2VzID0gZnVuY3Rpb24gKGNvZGVQb2ludHMsIGxpbmVCcmVhaykge1xyXG4gICAgICAgIGlmIChsaW5lQnJlYWsgPT09IHZvaWQgMCkgeyBsaW5lQnJlYWsgPSAnc3RyaWN0JzsgfVxyXG4gICAgICAgIHZhciB0eXBlcyA9IFtdO1xyXG4gICAgICAgIHZhciBpbmRpY2llcyA9IFtdO1xyXG4gICAgICAgIHZhciBjYXRlZ29yaWVzID0gW107XHJcbiAgICAgICAgY29kZVBvaW50cy5mb3JFYWNoKGZ1bmN0aW9uIChjb2RlUG9pbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgIHZhciBjbGFzc1R5cGUgPSBVbmljb2RlVHJpZS5nZXQoY29kZVBvaW50KTtcclxuICAgICAgICAgICAgaWYgKGNsYXNzVHlwZSA+IExFVFRFUl9OVU1CRVJfTU9ESUZJRVIpIHtcclxuICAgICAgICAgICAgICAgIGNhdGVnb3JpZXMucHVzaCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIGNsYXNzVHlwZSAtPSBMRVRURVJfTlVNQkVSX01PRElGSUVSO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2F0ZWdvcmllcy5wdXNoKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoWydub3JtYWwnLCAnYXV0bycsICdsb29zZSddLmluZGV4T2YobGluZUJyZWFrKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIC8vIFUrMjAxMCwg4oCTIFUrMjAxMywg44CcIFUrMzAxQywg44KgIFUrMzBBMFxyXG4gICAgICAgICAgICAgICAgaWYgKFsweDIwMTAsIDB4MjAxMywgMHgzMDFjLCAweDMwYTBdLmluZGV4T2YoY29kZVBvaW50KSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICBpbmRpY2llcy5wdXNoKGluZGV4KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZXMucHVzaChDQik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGNsYXNzVHlwZSA9PT0gQ00gfHwgY2xhc3NUeXBlID09PSBaV0opIHtcclxuICAgICAgICAgICAgICAgIC8vIExCMTAgVHJlYXQgYW55IHJlbWFpbmluZyBjb21iaW5pbmcgbWFyayBvciBaV0ogYXMgQUwuXHJcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBpbmRpY2llcy5wdXNoKGluZGV4KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZXMucHVzaChBTCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBMQjkgRG8gbm90IGJyZWFrIGEgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZTsgdHJlYXQgaXQgYXMgaWYgaXQgaGFzIHRoZSBsaW5lIGJyZWFraW5nIGNsYXNzIG9mXHJcbiAgICAgICAgICAgICAgICAvLyB0aGUgYmFzZSBjaGFyYWN0ZXIgaW4gYWxsIG9mIHRoZSBmb2xsb3dpbmcgcnVsZXMuIFRyZWF0IFpXSiBhcyBpZiBpdCB3ZXJlIENNLlxyXG4gICAgICAgICAgICAgICAgdmFyIHByZXYgPSB0eXBlc1tpbmRleCAtIDFdO1xyXG4gICAgICAgICAgICAgICAgaWYgKExJTkVfQlJFQUtTLmluZGV4T2YocHJldikgPT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW5kaWNpZXMucHVzaChpbmRpY2llc1tpbmRleCAtIDFdKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZXMucHVzaChwcmV2KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGluZGljaWVzLnB1c2goaW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVzLnB1c2goQUwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGluZGljaWVzLnB1c2goaW5kZXgpO1xyXG4gICAgICAgICAgICBpZiAoY2xhc3NUeXBlID09PSBDSikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVzLnB1c2gobGluZUJyZWFrID09PSAnc3RyaWN0JyA/IE5TIDogSUQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjbGFzc1R5cGUgPT09IFNBKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZXMucHVzaChBTCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGNsYXNzVHlwZSA9PT0gQUkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlcy5wdXNoKEFMKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyBGb3Igc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzLCBhIHVzZWZ1bCBkZWZhdWx0IGlzIHRvIHRyZWF0IGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIDEwMDAwLi4xRkZGRCBhcyBBTFxyXG4gICAgICAgICAgICAvLyBhbmQgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2VzIDIwMDAwLi4yRkZGRCBhbmQgMzAwMDAuLjNGRkZEIGFzIElELCB1bnRpbCB0aGUgaW1wbGVtZW50YXRpb24gY2FuIGJlIHJldmlzZWRcclxuICAgICAgICAgICAgLy8gdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlIGFjdHVhbCBsaW5lIGJyZWFraW5nIHByb3BlcnRpZXMgZm9yIHRoZXNlIGNoYXJhY3RlcnMuXHJcbiAgICAgICAgICAgIGlmIChjbGFzc1R5cGUgPT09IFhYKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoKGNvZGVQb2ludCA+PSAweDIwMDAwICYmIGNvZGVQb2ludCA8PSAweDJmZmZkKSB8fCAoY29kZVBvaW50ID49IDB4MzAwMDAgJiYgY29kZVBvaW50IDw9IDB4M2ZmZmQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVzLnB1c2goSUQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVzLnB1c2goQUwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHR5cGVzLnB1c2goY2xhc3NUeXBlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gW2luZGljaWVzLCB0eXBlcywgY2F0ZWdvcmllc107XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzQWRqYWNlbnRXaXRoU3BhY2VJZ25vcmVkID0gZnVuY3Rpb24gKGEsIGIsIGN1cnJlbnRJbmRleCwgY2xhc3NUeXBlcykge1xyXG4gICAgICAgIHZhciBjdXJyZW50ID0gY2xhc3NUeXBlc1tjdXJyZW50SW5kZXhdO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGEpID8gYS5pbmRleE9mKGN1cnJlbnQpICE9PSAtMSA6IGEgPT09IGN1cnJlbnQpIHtcclxuICAgICAgICAgICAgdmFyIGkgPSBjdXJyZW50SW5kZXg7XHJcbiAgICAgICAgICAgIHdoaWxlIChpIDw9IGNsYXNzVHlwZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBpKys7XHJcbiAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IGNsYXNzVHlwZXNbaV07XHJcbiAgICAgICAgICAgICAgICBpZiAobmV4dCA9PT0gYikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKG5leHQgIT09IFNQKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IFNQKSB7XHJcbiAgICAgICAgICAgIHZhciBpID0gY3VycmVudEluZGV4O1xyXG4gICAgICAgICAgICB3aGlsZSAoaSA+IDApIHtcclxuICAgICAgICAgICAgICAgIGktLTtcclxuICAgICAgICAgICAgICAgIHZhciBwcmV2ID0gY2xhc3NUeXBlc1tpXTtcclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGEpID8gYS5pbmRleE9mKHByZXYpICE9PSAtMSA6IGEgPT09IHByZXYpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbiA9IGN1cnJlbnRJbmRleDtcclxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAobiA8PSBjbGFzc1R5cGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuKys7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXh0ID0gY2xhc3NUeXBlc1tuXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgPT09IGIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0ICE9PSBTUCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocHJldiAhPT0gU1ApIHtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG4gICAgdmFyIHByZXZpb3VzTm9uU3BhY2VDbGFzc1R5cGUgPSBmdW5jdGlvbiAoY3VycmVudEluZGV4LCBjbGFzc1R5cGVzKSB7XHJcbiAgICAgICAgdmFyIGkgPSBjdXJyZW50SW5kZXg7XHJcbiAgICAgICAgd2hpbGUgKGkgPj0gMCkge1xyXG4gICAgICAgICAgICB2YXIgdHlwZSA9IGNsYXNzVHlwZXNbaV07XHJcbiAgICAgICAgICAgIGlmICh0eXBlID09PSBTUCkge1xyXG4gICAgICAgICAgICAgICAgaS0tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9O1xyXG4gICAgdmFyIF9saW5lQnJlYWtBdEluZGV4ID0gZnVuY3Rpb24gKGNvZGVQb2ludHMsIGNsYXNzVHlwZXMsIGluZGljaWVzLCBpbmRleCwgZm9yYmlkZGVuQnJlYWtzKSB7XHJcbiAgICAgICAgaWYgKGluZGljaWVzW2luZGV4XSA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBjdXJyZW50SW5kZXggPSBpbmRleCAtIDE7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZm9yYmlkZGVuQnJlYWtzKSAmJiBmb3JiaWRkZW5CcmVha3NbY3VycmVudEluZGV4XSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBiZWZvcmVJbmRleCA9IGN1cnJlbnRJbmRleCAtIDE7XHJcbiAgICAgICAgdmFyIGFmdGVySW5kZXggPSBjdXJyZW50SW5kZXggKyAxO1xyXG4gICAgICAgIHZhciBjdXJyZW50ID0gY2xhc3NUeXBlc1tjdXJyZW50SW5kZXhdO1xyXG4gICAgICAgIC8vIExCNCBBbHdheXMgYnJlYWsgYWZ0ZXIgaGFyZCBsaW5lIGJyZWFrcy5cclxuICAgICAgICAvLyBMQjUgVHJlYXQgQ1IgZm9sbG93ZWQgYnkgTEYsIGFzIHdlbGwgYXMgQ1IsIExGLCBhbmQgTkwgYXMgaGFyZCBsaW5lIGJyZWFrcy5cclxuICAgICAgICB2YXIgYmVmb3JlID0gYmVmb3JlSW5kZXggPj0gMCA/IGNsYXNzVHlwZXNbYmVmb3JlSW5kZXhdIDogMDtcclxuICAgICAgICB2YXIgbmV4dCA9IGNsYXNzVHlwZXNbYWZ0ZXJJbmRleF07XHJcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IENSICYmIG5leHQgPT09IExGKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBCUkVBS19OT1RfQUxMT1dFRDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKEhBUkRfTElORV9CUkVBS1MuaW5kZXhPZihjdXJyZW50KSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX01BTkRBVE9SWTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTEI2IERvIG5vdCBicmVhayBiZWZvcmUgaGFyZCBsaW5lIGJyZWFrcy5cclxuICAgICAgICBpZiAoSEFSRF9MSU5FX0JSRUFLUy5pbmRleE9mKG5leHQpICE9PSAtMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCNyBEbyBub3QgYnJlYWsgYmVmb3JlIHNwYWNlcyBvciB6ZXJvIHdpZHRoIHNwYWNlLlxyXG4gICAgICAgIGlmIChTUEFDRS5pbmRleE9mKG5leHQpICE9PSAtMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCOCBCcmVhayBiZWZvcmUgYW55IGNoYXJhY3RlciBmb2xsb3dpbmcgYSB6ZXJvLXdpZHRoIHNwYWNlLCBldmVuIGlmIG9uZSBvciBtb3JlIHNwYWNlcyBpbnRlcnZlbmUuXHJcbiAgICAgICAgaWYgKHByZXZpb3VzTm9uU3BhY2VDbGFzc1R5cGUoY3VycmVudEluZGV4LCBjbGFzc1R5cGVzKSA9PT0gWlcpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCOGEgRG8gbm90IGJyZWFrIGJldHdlZW4gYSB6ZXJvIHdpZHRoIGpvaW5lciBhbmQgYW4gaWRlb2dyYXBoLCBlbW9qaSBiYXNlIG9yIGVtb2ppIG1vZGlmaWVyLlxyXG4gICAgICAgIGlmIChVbmljb2RlVHJpZS5nZXQoY29kZVBvaW50c1tjdXJyZW50SW5kZXhdKSA9PT0gWldKICYmIChuZXh0ID09PSBJRCB8fCBuZXh0ID09PSBFQiB8fCBuZXh0ID09PSBFTSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX05PVF9BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjExIERvIG5vdCBicmVhayBiZWZvcmUgb3IgYWZ0ZXIgV29yZCBqb2luZXIgYW5kIHJlbGF0ZWQgY2hhcmFjdGVycy5cclxuICAgICAgICBpZiAoY3VycmVudCA9PT0gV0ogfHwgbmV4dCA9PT0gV0opIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX05PVF9BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjEyIERvIG5vdCBicmVhayBhZnRlciBOQlNQIGFuZCByZWxhdGVkIGNoYXJhY3RlcnMuXHJcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IEdMKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBCUkVBS19OT1RfQUxMT1dFRDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTEIxMmEgRG8gbm90IGJyZWFrIGJlZm9yZSBOQlNQIGFuZCByZWxhdGVkIGNoYXJhY3RlcnMsIGV4Y2VwdCBhZnRlciBzcGFjZXMgYW5kIGh5cGhlbnMuXHJcbiAgICAgICAgaWYgKFtTUCwgQkEsIEhZXS5pbmRleE9mKGN1cnJlbnQpID09PSAtMSAmJiBuZXh0ID09PSBHTCkge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCMTMgRG8gbm90IGJyZWFrIGJlZm9yZSDigJhd4oCZIG9yIOKAmCHigJkgb3Ig4oCYO+KAmSBvciDigJgv4oCZLCBldmVuIGFmdGVyIHNwYWNlcy5cclxuICAgICAgICBpZiAoW0NMLCBDUCwgRVgsIElTLCBTWV0uaW5kZXhPZihuZXh0KSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX05PVF9BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjE0IERvIG5vdCBicmVhayBhZnRlciDigJhb4oCZLCBldmVuIGFmdGVyIHNwYWNlcy5cclxuICAgICAgICBpZiAocHJldmlvdXNOb25TcGFjZUNsYXNzVHlwZShjdXJyZW50SW5kZXgsIGNsYXNzVHlwZXMpID09PSBPUCkge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCMTUgRG8gbm90IGJyZWFrIHdpdGhpbiDigJjigJ1b4oCZLCBldmVuIHdpdGggaW50ZXJ2ZW5pbmcgc3BhY2VzLlxyXG4gICAgICAgIGlmIChpc0FkamFjZW50V2l0aFNwYWNlSWdub3JlZChRVSwgT1AsIGN1cnJlbnRJbmRleCwgY2xhc3NUeXBlcykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX05PVF9BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjE2IERvIG5vdCBicmVhayBiZXR3ZWVuIGNsb3NpbmcgcHVuY3R1YXRpb24gYW5kIGEgbm9uc3RhcnRlciAobGI9TlMpLCBldmVuIHdpdGggaW50ZXJ2ZW5pbmcgc3BhY2VzLlxyXG4gICAgICAgIGlmIChpc0FkamFjZW50V2l0aFNwYWNlSWdub3JlZChbQ0wsIENQXSwgTlMsIGN1cnJlbnRJbmRleCwgY2xhc3NUeXBlcykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX05PVF9BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjE3IERvIG5vdCBicmVhayB3aXRoaW4g4oCY4oCU4oCU4oCZLCBldmVuIHdpdGggaW50ZXJ2ZW5pbmcgc3BhY2VzLlxyXG4gICAgICAgIGlmIChpc0FkamFjZW50V2l0aFNwYWNlSWdub3JlZChCMiwgQjIsIGN1cnJlbnRJbmRleCwgY2xhc3NUeXBlcykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX05PVF9BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjE4IEJyZWFrIGFmdGVyIHNwYWNlcy5cclxuICAgICAgICBpZiAoY3VycmVudCA9PT0gU1ApIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCMTkgRG8gbm90IGJyZWFrIGJlZm9yZSBvciBhZnRlciBxdW90YXRpb24gbWFya3MsIHN1Y2ggYXMg4oCYIOKAnSDigJkuXHJcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IFFVIHx8IG5leHQgPT09IFFVKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBCUkVBS19OT1RfQUxMT1dFRDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTEIyMCBCcmVhayBiZWZvcmUgYW5kIGFmdGVyIHVucmVzb2x2ZWQgQ0IuXHJcbiAgICAgICAgaWYgKG5leHQgPT09IENCIHx8IGN1cnJlbnQgPT09IENCKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBCUkVBS19BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjIxIERvIG5vdCBicmVhayBiZWZvcmUgaHlwaGVuLW1pbnVzLCBvdGhlciBoeXBoZW5zLCBmaXhlZC13aWR0aCBzcGFjZXMsIHNtYWxsIGthbmEsIGFuZCBvdGhlciBub24tc3RhcnRlcnMsIG9yIGFmdGVyIGFjdXRlIGFjY2VudHMuXHJcbiAgICAgICAgaWYgKFtCQSwgSFksIE5TXS5pbmRleE9mKG5leHQpICE9PSAtMSB8fCBjdXJyZW50ID09PSBCQikge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCMjFhIERvbid0IGJyZWFrIGFmdGVyIEhlYnJldyArIEh5cGhlbi5cclxuICAgICAgICBpZiAoYmVmb3JlID09PSBITCAmJiBIWVBIRU4uaW5kZXhPZihjdXJyZW50KSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX05PVF9BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjIxYiBEb27igJl0IGJyZWFrIGJldHdlZW4gU29saWR1cyBhbmQgSGVicmV3IGxldHRlcnMuXHJcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IFNZICYmIG5leHQgPT09IEhMKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBCUkVBS19OT1RfQUxMT1dFRDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTEIyMiBEbyBub3QgYnJlYWsgYmV0d2VlbiB0d28gZWxsaXBzZXMsIG9yIGJldHdlZW4gbGV0dGVycywgbnVtYmVycyBvciBleGNsYW1hdGlvbnMgYW5kIGVsbGlwc2lzLlxyXG4gICAgICAgIGlmIChuZXh0ID09PSBJTiAmJiBBTFBIQUJFVElDUy5jb25jYXQoSU4sIEVYLCBOVSwgSUQsIEVCLCBFTSkuaW5kZXhPZihjdXJyZW50KSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX05PVF9BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjIzIERvIG5vdCBicmVhayBiZXR3ZWVuIGRpZ2l0cyBhbmQgbGV0dGVycy5cclxuICAgICAgICBpZiAoKEFMUEhBQkVUSUNTLmluZGV4T2YobmV4dCkgIT09IC0xICYmIGN1cnJlbnQgPT09IE5VKSB8fCAoQUxQSEFCRVRJQ1MuaW5kZXhPZihjdXJyZW50KSAhPT0gLTEgJiYgbmV4dCA9PT0gTlUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBCUkVBS19OT1RfQUxMT1dFRDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTEIyM2EgRG8gbm90IGJyZWFrIGJldHdlZW4gbnVtZXJpYyBwcmVmaXhlcyBhbmQgaWRlb2dyYXBocywgb3IgYmV0d2VlbiBpZGVvZ3JhcGhzIGFuZCBudW1lcmljIHBvc3RmaXhlcy5cclxuICAgICAgICBpZiAoKGN1cnJlbnQgPT09IFBSICYmIFtJRCwgRUIsIEVNXS5pbmRleE9mKG5leHQpICE9PSAtMSkgfHxcclxuICAgICAgICAgICAgKFtJRCwgRUIsIEVNXS5pbmRleE9mKGN1cnJlbnQpICE9PSAtMSAmJiBuZXh0ID09PSBQTykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX05PVF9BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjI0IERvIG5vdCBicmVhayBiZXR3ZWVuIG51bWVyaWMgcHJlZml4L3Bvc3RmaXggYW5kIGxldHRlcnMsIG9yIGJldHdlZW4gbGV0dGVycyBhbmQgcHJlZml4L3Bvc3RmaXguXHJcbiAgICAgICAgaWYgKChBTFBIQUJFVElDUy5pbmRleE9mKGN1cnJlbnQpICE9PSAtMSAmJiBQUkVGSVhfUE9TVEZJWC5pbmRleE9mKG5leHQpICE9PSAtMSkgfHxcclxuICAgICAgICAgICAgKFBSRUZJWF9QT1NURklYLmluZGV4T2YoY3VycmVudCkgIT09IC0xICYmIEFMUEhBQkVUSUNTLmluZGV4T2YobmV4dCkgIT09IC0xKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCMjUgRG8gbm90IGJyZWFrIGJldHdlZW4gdGhlIGZvbGxvd2luZyBwYWlycyBvZiBjbGFzc2VzIHJlbGV2YW50IHRvIG51bWJlcnM6XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgIC8vIChQUiB8IFBPKSDDlyAoIE9QIHwgSFkgKT8gTlVcclxuICAgICAgICAoW1BSLCBQT10uaW5kZXhPZihjdXJyZW50KSAhPT0gLTEgJiZcclxuICAgICAgICAgICAgKG5leHQgPT09IE5VIHx8IChbT1AsIEhZXS5pbmRleE9mKG5leHQpICE9PSAtMSAmJiBjbGFzc1R5cGVzW2FmdGVySW5kZXggKyAxXSA9PT0gTlUpKSkgfHxcclxuICAgICAgICAgICAgLy8gKCBPUCB8IEhZICkgw5cgTlVcclxuICAgICAgICAgICAgKFtPUCwgSFldLmluZGV4T2YoY3VycmVudCkgIT09IC0xICYmIG5leHQgPT09IE5VKSB8fFxyXG4gICAgICAgICAgICAvLyBOVSDDl1x0KE5VIHwgU1kgfCBJUylcclxuICAgICAgICAgICAgKGN1cnJlbnQgPT09IE5VICYmIFtOVSwgU1ksIElTXS5pbmRleE9mKG5leHQpICE9PSAtMSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEJSRUFLX05PVF9BTExPV0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBOVSAoTlUgfCBTWSB8IElTKSogw5cgKE5VIHwgU1kgfCBJUyB8IENMIHwgQ1ApXHJcbiAgICAgICAgaWYgKFtOVSwgU1ksIElTLCBDTCwgQ1BdLmluZGV4T2YobmV4dCkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIHZhciBwcmV2SW5kZXggPSBjdXJyZW50SW5kZXg7XHJcbiAgICAgICAgICAgIHdoaWxlIChwcmV2SW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHR5cGUgPSBjbGFzc1R5cGVzW3ByZXZJbmRleF07XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gTlUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChbU1ksIElTXS5pbmRleE9mKHR5cGUpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZJbmRleC0tO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTlUgKE5VIHwgU1kgfCBJUykqIChDTCB8IENQKT8gw5cgKFBPIHwgUFIpKVxyXG4gICAgICAgIGlmIChbUFIsIFBPXS5pbmRleE9mKG5leHQpICE9PSAtMSkge1xyXG4gICAgICAgICAgICB2YXIgcHJldkluZGV4ID0gW0NMLCBDUF0uaW5kZXhPZihjdXJyZW50KSAhPT0gLTEgPyBiZWZvcmVJbmRleCA6IGN1cnJlbnRJbmRleDtcclxuICAgICAgICAgICAgd2hpbGUgKHByZXZJbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdHlwZSA9IGNsYXNzVHlwZXNbcHJldkluZGV4XTtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSBOVSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCUkVBS19OT1RfQUxMT1dFRDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKFtTWSwgSVNdLmluZGV4T2YodHlwZSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJldkluZGV4LS07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBMQjI2IERvIG5vdCBicmVhayBhIEtvcmVhbiBzeWxsYWJsZS5cclxuICAgICAgICBpZiAoKEpMID09PSBjdXJyZW50ICYmIFtKTCwgSlYsIEgyLCBIM10uaW5kZXhPZihuZXh0KSAhPT0gLTEpIHx8XHJcbiAgICAgICAgICAgIChbSlYsIEgyXS5pbmRleE9mKGN1cnJlbnQpICE9PSAtMSAmJiBbSlYsIEpUXS5pbmRleE9mKG5leHQpICE9PSAtMSkgfHxcclxuICAgICAgICAgICAgKFtKVCwgSDNdLmluZGV4T2YoY3VycmVudCkgIT09IC0xICYmIG5leHQgPT09IEpUKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCMjcgVHJlYXQgYSBLb3JlYW4gU3lsbGFibGUgQmxvY2sgdGhlIHNhbWUgYXMgSUQuXHJcbiAgICAgICAgaWYgKChLT1JFQU5fU1lMTEFCTEVfQkxPQ0suaW5kZXhPZihjdXJyZW50KSAhPT0gLTEgJiYgW0lOLCBQT10uaW5kZXhPZihuZXh0KSAhPT0gLTEpIHx8XHJcbiAgICAgICAgICAgIChLT1JFQU5fU1lMTEFCTEVfQkxPQ0suaW5kZXhPZihuZXh0KSAhPT0gLTEgJiYgY3VycmVudCA9PT0gUFIpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBCUkVBS19OT1RfQUxMT1dFRDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTEIyOCBEbyBub3QgYnJlYWsgYmV0d2VlbiBhbHBoYWJldGljcyAo4oCcYXTigJ0pLlxyXG4gICAgICAgIGlmIChBTFBIQUJFVElDUy5pbmRleE9mKGN1cnJlbnQpICE9PSAtMSAmJiBBTFBIQUJFVElDUy5pbmRleE9mKG5leHQpICE9PSAtMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCMjkgRG8gbm90IGJyZWFrIGJldHdlZW4gbnVtZXJpYyBwdW5jdHVhdGlvbiBhbmQgYWxwaGFiZXRpY3MgKOKAnGUuZy7igJ0pLlxyXG4gICAgICAgIGlmIChjdXJyZW50ID09PSBJUyAmJiBBTFBIQUJFVElDUy5pbmRleE9mKG5leHQpICE9PSAtMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIExCMzAgRG8gbm90IGJyZWFrIGJldHdlZW4gbGV0dGVycywgbnVtYmVycywgb3Igb3JkaW5hcnkgc3ltYm9scyBhbmQgb3BlbmluZyBvciBjbG9zaW5nIHBhcmVudGhlc2VzLlxyXG4gICAgICAgIGlmICgoQUxQSEFCRVRJQ1MuY29uY2F0KE5VKS5pbmRleE9mKGN1cnJlbnQpICE9PSAtMSAmJiBuZXh0ID09PSBPUCkgfHxcclxuICAgICAgICAgICAgKEFMUEhBQkVUSUNTLmNvbmNhdChOVSkuaW5kZXhPZihuZXh0KSAhPT0gLTEgJiYgY3VycmVudCA9PT0gQ1ApKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBCUkVBS19OT1RfQUxMT1dFRDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTEIzMGEgQnJlYWsgYmV0d2VlbiB0d28gcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMgaWYgYW5kIG9ubHkgaWYgdGhlcmUgYXJlIGFuIGV2ZW4gbnVtYmVyIG9mIHJlZ2lvbmFsXHJcbiAgICAgICAgLy8gaW5kaWNhdG9ycyBwcmVjZWRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBicmVhay5cclxuICAgICAgICBpZiAoY3VycmVudCA9PT0gUkkgJiYgbmV4dCA9PT0gUkkpIHtcclxuICAgICAgICAgICAgdmFyIGkgPSBpbmRpY2llc1tjdXJyZW50SW5kZXhdO1xyXG4gICAgICAgICAgICB2YXIgY291bnQgPSAxO1xyXG4gICAgICAgICAgICB3aGlsZSAoaSA+IDApIHtcclxuICAgICAgICAgICAgICAgIGktLTtcclxuICAgICAgICAgICAgICAgIGlmIChjbGFzc1R5cGVzW2ldID09PSBSSSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoY291bnQgJSAyICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gTEIzMGIgRG8gbm90IGJyZWFrIGJldHdlZW4gYW4gZW1vamkgYmFzZSBhbmQgYW4gZW1vamkgbW9kaWZpZXIuXHJcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IEVCICYmIG5leHQgPT09IEVNKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBCUkVBS19OT1RfQUxMT1dFRDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEJSRUFLX0FMTE9XRUQ7XHJcbiAgICB9O1xyXG4gICAgdmFyIGNzc0Zvcm1hdHRlZENsYXNzZXMgPSBmdW5jdGlvbiAoY29kZVBvaW50cywgb3B0aW9ucykge1xyXG4gICAgICAgIGlmICghb3B0aW9ucykge1xyXG4gICAgICAgICAgICBvcHRpb25zID0geyBsaW5lQnJlYWs6ICdub3JtYWwnLCB3b3JkQnJlYWs6ICdub3JtYWwnIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBfYSA9IGNvZGVQb2ludHNUb0NoYXJhY3RlckNsYXNzZXMoY29kZVBvaW50cywgb3B0aW9ucy5saW5lQnJlYWspLCBpbmRpY2llcyA9IF9hWzBdLCBjbGFzc1R5cGVzID0gX2FbMV0sIGlzTGV0dGVyTnVtYmVyID0gX2FbMl07XHJcbiAgICAgICAgaWYgKG9wdGlvbnMud29yZEJyZWFrID09PSAnYnJlYWstYWxsJyB8fCBvcHRpb25zLndvcmRCcmVhayA9PT0gJ2JyZWFrLXdvcmQnKSB7XHJcbiAgICAgICAgICAgIGNsYXNzVHlwZXMgPSBjbGFzc1R5cGVzLm1hcChmdW5jdGlvbiAodHlwZSkgeyByZXR1cm4gKFtOVSwgQUwsIFNBXS5pbmRleE9mKHR5cGUpICE9PSAtMSA/IElEIDogdHlwZSk7IH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgZm9yYmlkZGVuQnJlYWtwb2ludHMgPSBvcHRpb25zLndvcmRCcmVhayA9PT0gJ2tlZXAtYWxsJ1xyXG4gICAgICAgICAgICA/IGlzTGV0dGVyTnVtYmVyLm1hcChmdW5jdGlvbiAobGV0dGVyTnVtYmVyLCBpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbGV0dGVyTnVtYmVyICYmIGNvZGVQb2ludHNbaV0gPj0gMHg0ZTAwICYmIGNvZGVQb2ludHNbaV0gPD0gMHg5ZmZmO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcclxuICAgICAgICByZXR1cm4gW2luZGljaWVzLCBjbGFzc1R5cGVzLCBmb3JiaWRkZW5CcmVha3BvaW50c107XHJcbiAgICB9O1xyXG4gICAgdmFyIEJyZWFrID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIEJyZWFrKGNvZGVQb2ludHMsIGxpbmVCcmVhaywgc3RhcnQsIGVuZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvZGVQb2ludHMgPSBjb2RlUG9pbnRzO1xyXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVkID0gbGluZUJyZWFrID09PSBCUkVBS19NQU5EQVRPUlk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDtcclxuICAgICAgICAgICAgdGhpcy5lbmQgPSBlbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEJyZWFrLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZyb21Db2RlUG9pbnQuYXBwbHkodm9pZCAwLCB0aGlzLmNvZGVQb2ludHMuc2xpY2UodGhpcy5zdGFydCwgdGhpcy5lbmQpKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBCcmVhaztcclxuICAgIH0oKSk7XHJcbiAgICB2YXIgTGluZUJyZWFrZXIgPSBmdW5jdGlvbiAoc3RyLCBvcHRpb25zKSB7XHJcbiAgICAgICAgdmFyIGNvZGVQb2ludHMgPSB0b0NvZGVQb2ludHMoc3RyKTtcclxuICAgICAgICB2YXIgX2EgPSBjc3NGb3JtYXR0ZWRDbGFzc2VzKGNvZGVQb2ludHMsIG9wdGlvbnMpLCBpbmRpY2llcyA9IF9hWzBdLCBjbGFzc1R5cGVzID0gX2FbMV0sIGZvcmJpZGRlbkJyZWFrcG9pbnRzID0gX2FbMl07XHJcbiAgICAgICAgdmFyIGxlbmd0aCA9IGNvZGVQb2ludHMubGVuZ3RoO1xyXG4gICAgICAgIHZhciBsYXN0RW5kID0gMDtcclxuICAgICAgICB2YXIgbmV4dEluZGV4ID0gMDtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobmV4dEluZGV4ID49IGxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YXIgbGluZUJyZWFrID0gQlJFQUtfTk9UX0FMTE9XRUQ7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAobmV4dEluZGV4IDwgbGVuZ3RoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgKGxpbmVCcmVhayA9IF9saW5lQnJlYWtBdEluZGV4KGNvZGVQb2ludHMsIGNsYXNzVHlwZXMsIGluZGljaWVzLCArK25leHRJbmRleCwgZm9yYmlkZGVuQnJlYWtwb2ludHMpKSA9PT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgQlJFQUtfTk9UX0FMTE9XRUQpIHsgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGxpbmVCcmVhayAhPT0gQlJFQUtfTk9UX0FMTE9XRUQgfHwgbmV4dEluZGV4ID09PSBsZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBuZXcgQnJlYWsoY29kZVBvaW50cywgbGluZUJyZWFrLCBsYXN0RW5kLCBuZXh0SW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxhc3RFbmQgPSBuZXh0SW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gICAgfTtcblxuICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtc3ludGF4LTNcclxuICAgIHZhciBUb2tlblR5cGU7XHJcbiAgICAoZnVuY3Rpb24gKFRva2VuVHlwZSkge1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJTVFJJTkdfVE9LRU5cIl0gPSAwXSA9IFwiU1RSSU5HX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkJBRF9TVFJJTkdfVE9LRU5cIl0gPSAxXSA9IFwiQkFEX1NUUklOR19UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJMRUZUX1BBUkVOVEhFU0lTX1RPS0VOXCJdID0gMl0gPSBcIkxFRlRfUEFSRU5USEVTSVNfVE9LRU5cIjtcclxuICAgICAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiUklHSFRfUEFSRU5USEVTSVNfVE9LRU5cIl0gPSAzXSA9IFwiUklHSFRfUEFSRU5USEVTSVNfVE9LRU5cIjtcclxuICAgICAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiQ09NTUFfVE9LRU5cIl0gPSA0XSA9IFwiQ09NTUFfVE9LRU5cIjtcclxuICAgICAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiSEFTSF9UT0tFTlwiXSA9IDVdID0gXCJIQVNIX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkRFTElNX1RPS0VOXCJdID0gNl0gPSBcIkRFTElNX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkFUX0tFWVdPUkRfVE9LRU5cIl0gPSA3XSA9IFwiQVRfS0VZV09SRF9UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJQUkVGSVhfTUFUQ0hfVE9LRU5cIl0gPSA4XSA9IFwiUFJFRklYX01BVENIX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkRBU0hfTUFUQ0hfVE9LRU5cIl0gPSA5XSA9IFwiREFTSF9NQVRDSF9UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJJTkNMVURFX01BVENIX1RPS0VOXCJdID0gMTBdID0gXCJJTkNMVURFX01BVENIX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkxFRlRfQ1VSTFlfQlJBQ0tFVF9UT0tFTlwiXSA9IDExXSA9IFwiTEVGVF9DVVJMWV9CUkFDS0VUX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIlJJR0hUX0NVUkxZX0JSQUNLRVRfVE9LRU5cIl0gPSAxMl0gPSBcIlJJR0hUX0NVUkxZX0JSQUNLRVRfVE9LRU5cIjtcclxuICAgICAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiU1VGRklYX01BVENIX1RPS0VOXCJdID0gMTNdID0gXCJTVUZGSVhfTUFUQ0hfVE9LRU5cIjtcclxuICAgICAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiU1VCU1RSSU5HX01BVENIX1RPS0VOXCJdID0gMTRdID0gXCJTVUJTVFJJTkdfTUFUQ0hfVE9LRU5cIjtcclxuICAgICAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiRElNRU5TSU9OX1RPS0VOXCJdID0gMTVdID0gXCJESU1FTlNJT05fVE9LRU5cIjtcclxuICAgICAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiUEVSQ0VOVEFHRV9UT0tFTlwiXSA9IDE2XSA9IFwiUEVSQ0VOVEFHRV9UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJOVU1CRVJfVE9LRU5cIl0gPSAxN10gPSBcIk5VTUJFUl9UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJGVU5DVElPTlwiXSA9IDE4XSA9IFwiRlVOQ1RJT05cIjtcclxuICAgICAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiRlVOQ1RJT05fVE9LRU5cIl0gPSAxOV0gPSBcIkZVTkNUSU9OX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIklERU5UX1RPS0VOXCJdID0gMjBdID0gXCJJREVOVF9UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJDT0xVTU5fVE9LRU5cIl0gPSAyMV0gPSBcIkNPTFVNTl9UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJVUkxfVE9LRU5cIl0gPSAyMl0gPSBcIlVSTF9UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJCQURfVVJMX1RPS0VOXCJdID0gMjNdID0gXCJCQURfVVJMX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNEQ19UT0tFTlwiXSA9IDI0XSA9IFwiQ0RDX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNET19UT0tFTlwiXSA9IDI1XSA9IFwiQ0RPX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNPTE9OX1RPS0VOXCJdID0gMjZdID0gXCJDT0xPTl9UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJTRU1JQ09MT05fVE9LRU5cIl0gPSAyN10gPSBcIlNFTUlDT0xPTl9UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJMRUZUX1NRVUFSRV9CUkFDS0VUX1RPS0VOXCJdID0gMjhdID0gXCJMRUZUX1NRVUFSRV9CUkFDS0VUX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIlJJR0hUX1NRVUFSRV9CUkFDS0VUX1RPS0VOXCJdID0gMjldID0gXCJSSUdIVF9TUVVBUkVfQlJBQ0tFVF9UT0tFTlwiO1xyXG4gICAgICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJVTklDT0RFX1JBTkdFX1RPS0VOXCJdID0gMzBdID0gXCJVTklDT0RFX1JBTkdFX1RPS0VOXCI7XHJcbiAgICAgICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIldISVRFU1BBQ0VfVE9LRU5cIl0gPSAzMV0gPSBcIldISVRFU1BBQ0VfVE9LRU5cIjtcclxuICAgICAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiRU9GX1RPS0VOXCJdID0gMzJdID0gXCJFT0ZfVE9LRU5cIjtcclxuICAgIH0pKFRva2VuVHlwZSB8fCAoVG9rZW5UeXBlID0ge30pKTtcclxuICAgIHZhciBGTEFHX1VOUkVTVFJJQ1RFRCA9IDEgPDwgMDtcclxuICAgIHZhciBGTEFHX0lEID0gMSA8PCAxO1xyXG4gICAgdmFyIEZMQUdfSU5URUdFUiA9IDEgPDwgMjtcclxuICAgIHZhciBGTEFHX05VTUJFUiA9IDEgPDwgMztcclxuICAgIHZhciBMSU5FX0ZFRUQgPSAweDAwMGE7XHJcbiAgICB2YXIgU09MSURVUyA9IDB4MDAyZjtcclxuICAgIHZhciBSRVZFUlNFX1NPTElEVVMgPSAweDAwNWM7XHJcbiAgICB2YXIgQ0hBUkFDVEVSX1RBQlVMQVRJT04gPSAweDAwMDk7XHJcbiAgICB2YXIgU1BBQ0UkMSA9IDB4MDAyMDtcclxuICAgIHZhciBRVU9UQVRJT05fTUFSSyA9IDB4MDAyMjtcclxuICAgIHZhciBFUVVBTFNfU0lHTiA9IDB4MDAzZDtcclxuICAgIHZhciBOVU1CRVJfU0lHTiA9IDB4MDAyMztcclxuICAgIHZhciBET0xMQVJfU0lHTiA9IDB4MDAyNDtcclxuICAgIHZhciBQRVJDRU5UQUdFX1NJR04gPSAweDAwMjU7XHJcbiAgICB2YXIgQVBPU1RST1BIRSA9IDB4MDAyNztcclxuICAgIHZhciBMRUZUX1BBUkVOVEhFU0lTID0gMHgwMDI4O1xyXG4gICAgdmFyIFJJR0hUX1BBUkVOVEhFU0lTID0gMHgwMDI5O1xyXG4gICAgdmFyIExPV19MSU5FID0gMHgwMDVmO1xyXG4gICAgdmFyIEhZUEhFTl9NSU5VUyA9IDB4MDAyZDtcclxuICAgIHZhciBFWENMQU1BVElPTl9NQVJLID0gMHgwMDIxO1xyXG4gICAgdmFyIExFU1NfVEhBTl9TSUdOID0gMHgwMDNjO1xyXG4gICAgdmFyIEdSRUFURVJfVEhBTl9TSUdOID0gMHgwMDNlO1xyXG4gICAgdmFyIENPTU1FUkNJQUxfQVQgPSAweDAwNDA7XHJcbiAgICB2YXIgTEVGVF9TUVVBUkVfQlJBQ0tFVCA9IDB4MDA1YjtcclxuICAgIHZhciBSSUdIVF9TUVVBUkVfQlJBQ0tFVCA9IDB4MDA1ZDtcclxuICAgIHZhciBDSVJDVU1GTEVYX0FDQ0VOVCA9IDB4MDAzZDtcclxuICAgIHZhciBMRUZUX0NVUkxZX0JSQUNLRVQgPSAweDAwN2I7XHJcbiAgICB2YXIgUVVFU1RJT05fTUFSSyA9IDB4MDAzZjtcclxuICAgIHZhciBSSUdIVF9DVVJMWV9CUkFDS0VUID0gMHgwMDdkO1xyXG4gICAgdmFyIFZFUlRJQ0FMX0xJTkUgPSAweDAwN2M7XHJcbiAgICB2YXIgVElMREUgPSAweDAwN2U7XHJcbiAgICB2YXIgQ09OVFJPTCA9IDB4MDA4MDtcclxuICAgIHZhciBSRVBMQUNFTUVOVF9DSEFSQUNURVIgPSAweGZmZmQ7XHJcbiAgICB2YXIgQVNURVJJU0sgPSAweDAwMmE7XHJcbiAgICB2YXIgUExVU19TSUdOID0gMHgwMDJiO1xyXG4gICAgdmFyIENPTU1BID0gMHgwMDJjO1xyXG4gICAgdmFyIENPTE9OID0gMHgwMDNhO1xyXG4gICAgdmFyIFNFTUlDT0xPTiA9IDB4MDAzYjtcclxuICAgIHZhciBGVUxMX1NUT1AgPSAweDAwMmU7XHJcbiAgICB2YXIgTlVMTCA9IDB4MDAwMDtcclxuICAgIHZhciBCQUNLU1BBQ0UgPSAweDAwMDg7XHJcbiAgICB2YXIgTElORV9UQUJVTEFUSU9OID0gMHgwMDBiO1xyXG4gICAgdmFyIFNISUZUX09VVCA9IDB4MDAwZTtcclxuICAgIHZhciBJTkZPUk1BVElPTl9TRVBBUkFUT1JfT05FID0gMHgwMDFmO1xyXG4gICAgdmFyIERFTEVURSA9IDB4MDA3ZjtcclxuICAgIHZhciBFT0YgPSAtMTtcclxuICAgIHZhciBaRVJPID0gMHgwMDMwO1xyXG4gICAgdmFyIGEgPSAweDAwNjE7XHJcbiAgICB2YXIgZSA9IDB4MDA2NTtcclxuICAgIHZhciBmID0gMHgwMDY2O1xyXG4gICAgdmFyIHUgPSAweDAwNzU7XHJcbiAgICB2YXIgeiA9IDB4MDA3YTtcclxuICAgIHZhciBBID0gMHgwMDQxO1xyXG4gICAgdmFyIEUgPSAweDAwNDU7XHJcbiAgICB2YXIgRiA9IDB4MDA0NjtcclxuICAgIHZhciBVID0gMHgwMDU1O1xyXG4gICAgdmFyIFogPSAweDAwNWE7XHJcbiAgICB2YXIgaXNEaWdpdCA9IGZ1bmN0aW9uIChjb2RlUG9pbnQpIHsgcmV0dXJuIGNvZGVQb2ludCA+PSBaRVJPICYmIGNvZGVQb2ludCA8PSAweDAwMzk7IH07XHJcbiAgICB2YXIgaXNTdXJyb2dhdGVDb2RlUG9pbnQgPSBmdW5jdGlvbiAoY29kZVBvaW50KSB7IHJldHVybiBjb2RlUG9pbnQgPj0gMHhkODAwICYmIGNvZGVQb2ludCA8PSAweGRmZmY7IH07XHJcbiAgICB2YXIgaXNIZXggPSBmdW5jdGlvbiAoY29kZVBvaW50KSB7XHJcbiAgICAgICAgcmV0dXJuIGlzRGlnaXQoY29kZVBvaW50KSB8fCAoY29kZVBvaW50ID49IEEgJiYgY29kZVBvaW50IDw9IEYpIHx8IChjb2RlUG9pbnQgPj0gYSAmJiBjb2RlUG9pbnQgPD0gZik7XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzTG93ZXJDYXNlTGV0dGVyID0gZnVuY3Rpb24gKGNvZGVQb2ludCkgeyByZXR1cm4gY29kZVBvaW50ID49IGEgJiYgY29kZVBvaW50IDw9IHo7IH07XHJcbiAgICB2YXIgaXNVcHBlckNhc2VMZXR0ZXIgPSBmdW5jdGlvbiAoY29kZVBvaW50KSB7IHJldHVybiBjb2RlUG9pbnQgPj0gQSAmJiBjb2RlUG9pbnQgPD0gWjsgfTtcclxuICAgIHZhciBpc0xldHRlciA9IGZ1bmN0aW9uIChjb2RlUG9pbnQpIHsgcmV0dXJuIGlzTG93ZXJDYXNlTGV0dGVyKGNvZGVQb2ludCkgfHwgaXNVcHBlckNhc2VMZXR0ZXIoY29kZVBvaW50KTsgfTtcclxuICAgIHZhciBpc05vbkFTQ0lJQ29kZVBvaW50ID0gZnVuY3Rpb24gKGNvZGVQb2ludCkgeyByZXR1cm4gY29kZVBvaW50ID49IENPTlRST0w7IH07XHJcbiAgICB2YXIgaXNXaGl0ZVNwYWNlID0gZnVuY3Rpb24gKGNvZGVQb2ludCkge1xyXG4gICAgICAgIHJldHVybiBjb2RlUG9pbnQgPT09IExJTkVfRkVFRCB8fCBjb2RlUG9pbnQgPT09IENIQVJBQ1RFUl9UQUJVTEFUSU9OIHx8IGNvZGVQb2ludCA9PT0gU1BBQ0UkMTtcclxuICAgIH07XHJcbiAgICB2YXIgaXNOYW1lU3RhcnRDb2RlUG9pbnQgPSBmdW5jdGlvbiAoY29kZVBvaW50KSB7XHJcbiAgICAgICAgcmV0dXJuIGlzTGV0dGVyKGNvZGVQb2ludCkgfHwgaXNOb25BU0NJSUNvZGVQb2ludChjb2RlUG9pbnQpIHx8IGNvZGVQb2ludCA9PT0gTE9XX0xJTkU7XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzTmFtZUNvZGVQb2ludCA9IGZ1bmN0aW9uIChjb2RlUG9pbnQpIHtcclxuICAgICAgICByZXR1cm4gaXNOYW1lU3RhcnRDb2RlUG9pbnQoY29kZVBvaW50KSB8fCBpc0RpZ2l0KGNvZGVQb2ludCkgfHwgY29kZVBvaW50ID09PSBIWVBIRU5fTUlOVVM7XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzTm9uUHJpbnRhYmxlQ29kZVBvaW50ID0gZnVuY3Rpb24gKGNvZGVQb2ludCkge1xyXG4gICAgICAgIHJldHVybiAoKGNvZGVQb2ludCA+PSBOVUxMICYmIGNvZGVQb2ludCA8PSBCQUNLU1BBQ0UpIHx8XHJcbiAgICAgICAgICAgIGNvZGVQb2ludCA9PT0gTElORV9UQUJVTEFUSU9OIHx8XHJcbiAgICAgICAgICAgIChjb2RlUG9pbnQgPj0gU0hJRlRfT1VUICYmIGNvZGVQb2ludCA8PSBJTkZPUk1BVElPTl9TRVBBUkFUT1JfT05FKSB8fFxyXG4gICAgICAgICAgICBjb2RlUG9pbnQgPT09IERFTEVURSk7XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzVmFsaWRFc2NhcGUgPSBmdW5jdGlvbiAoYzEsIGMyKSB7XHJcbiAgICAgICAgaWYgKGMxICE9PSBSRVZFUlNFX1NPTElEVVMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYzIgIT09IExJTkVfRkVFRDtcclxuICAgIH07XHJcbiAgICB2YXIgaXNJZGVudGlmaWVyU3RhcnQgPSBmdW5jdGlvbiAoYzEsIGMyLCBjMykge1xyXG4gICAgICAgIGlmIChjMSA9PT0gSFlQSEVOX01JTlVTKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpc05hbWVTdGFydENvZGVQb2ludChjMikgfHwgaXNWYWxpZEVzY2FwZShjMiwgYzMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChpc05hbWVTdGFydENvZGVQb2ludChjMSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGMxID09PSBSRVZFUlNFX1NPTElEVVMgJiYgaXNWYWxpZEVzY2FwZShjMSwgYzIpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzTnVtYmVyU3RhcnQgPSBmdW5jdGlvbiAoYzEsIGMyLCBjMykge1xyXG4gICAgICAgIGlmIChjMSA9PT0gUExVU19TSUdOIHx8IGMxID09PSBIWVBIRU5fTUlOVVMpIHtcclxuICAgICAgICAgICAgaWYgKGlzRGlnaXQoYzIpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gYzIgPT09IEZVTExfU1RPUCAmJiBpc0RpZ2l0KGMzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGMxID09PSBGVUxMX1NUT1ApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGlzRGlnaXQoYzIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXNEaWdpdChjMSk7XHJcbiAgICB9O1xyXG4gICAgdmFyIHN0cmluZ1RvTnVtYmVyID0gZnVuY3Rpb24gKGNvZGVQb2ludHMpIHtcclxuICAgICAgICB2YXIgYyA9IDA7XHJcbiAgICAgICAgdmFyIHNpZ24gPSAxO1xyXG4gICAgICAgIGlmIChjb2RlUG9pbnRzW2NdID09PSBQTFVTX1NJR04gfHwgY29kZVBvaW50c1tjXSA9PT0gSFlQSEVOX01JTlVTKSB7XHJcbiAgICAgICAgICAgIGlmIChjb2RlUG9pbnRzW2NdID09PSBIWVBIRU5fTUlOVVMpIHtcclxuICAgICAgICAgICAgICAgIHNpZ24gPSAtMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjKys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBpbnRlZ2VycyA9IFtdO1xyXG4gICAgICAgIHdoaWxlIChpc0RpZ2l0KGNvZGVQb2ludHNbY10pKSB7XHJcbiAgICAgICAgICAgIGludGVnZXJzLnB1c2goY29kZVBvaW50c1tjKytdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGludCA9IGludGVnZXJzLmxlbmd0aCA/IHBhcnNlSW50KGZyb21Db2RlUG9pbnQuYXBwbHkodm9pZCAwLCBpbnRlZ2VycyksIDEwKSA6IDA7XHJcbiAgICAgICAgaWYgKGNvZGVQb2ludHNbY10gPT09IEZVTExfU1RPUCkge1xyXG4gICAgICAgICAgICBjKys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBmcmFjdGlvbiA9IFtdO1xyXG4gICAgICAgIHdoaWxlIChpc0RpZ2l0KGNvZGVQb2ludHNbY10pKSB7XHJcbiAgICAgICAgICAgIGZyYWN0aW9uLnB1c2goY29kZVBvaW50c1tjKytdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGZyYWNkID0gZnJhY3Rpb24ubGVuZ3RoO1xyXG4gICAgICAgIHZhciBmcmFjID0gZnJhY2QgPyBwYXJzZUludChmcm9tQ29kZVBvaW50LmFwcGx5KHZvaWQgMCwgZnJhY3Rpb24pLCAxMCkgOiAwO1xyXG4gICAgICAgIGlmIChjb2RlUG9pbnRzW2NdID09PSBFIHx8IGNvZGVQb2ludHNbY10gPT09IGUpIHtcclxuICAgICAgICAgICAgYysrO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgZXhwc2lnbiA9IDE7XHJcbiAgICAgICAgaWYgKGNvZGVQb2ludHNbY10gPT09IFBMVVNfU0lHTiB8fCBjb2RlUG9pbnRzW2NdID09PSBIWVBIRU5fTUlOVVMpIHtcclxuICAgICAgICAgICAgaWYgKGNvZGVQb2ludHNbY10gPT09IEhZUEhFTl9NSU5VUykge1xyXG4gICAgICAgICAgICAgICAgZXhwc2lnbiA9IC0xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGMrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGV4cG9uZW50ID0gW107XHJcbiAgICAgICAgd2hpbGUgKGlzRGlnaXQoY29kZVBvaW50c1tjXSkpIHtcclxuICAgICAgICAgICAgZXhwb25lbnQucHVzaChjb2RlUG9pbnRzW2MrK10pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgZXhwID0gZXhwb25lbnQubGVuZ3RoID8gcGFyc2VJbnQoZnJvbUNvZGVQb2ludC5hcHBseSh2b2lkIDAsIGV4cG9uZW50KSwgMTApIDogMDtcclxuICAgICAgICByZXR1cm4gc2lnbiAqIChpbnQgKyBmcmFjICogTWF0aC5wb3coMTAsIC1mcmFjZCkpICogTWF0aC5wb3coMTAsIGV4cHNpZ24gKiBleHApO1xyXG4gICAgfTtcclxuICAgIHZhciBMRUZUX1BBUkVOVEhFU0lTX1RPS0VOID0ge1xyXG4gICAgICAgIHR5cGU6IFRva2VuVHlwZS5MRUZUX1BBUkVOVEhFU0lTX1RPS0VOXHJcbiAgICB9O1xyXG4gICAgdmFyIFJJR0hUX1BBUkVOVEhFU0lTX1RPS0VOID0ge1xyXG4gICAgICAgIHR5cGU6IFRva2VuVHlwZS5SSUdIVF9QQVJFTlRIRVNJU19UT0tFTlxyXG4gICAgfTtcclxuICAgIHZhciBDT01NQV9UT0tFTiA9IHsgdHlwZTogVG9rZW5UeXBlLkNPTU1BX1RPS0VOIH07XHJcbiAgICB2YXIgU1VGRklYX01BVENIX1RPS0VOID0geyB0eXBlOiBUb2tlblR5cGUuU1VGRklYX01BVENIX1RPS0VOIH07XHJcbiAgICB2YXIgUFJFRklYX01BVENIX1RPS0VOID0geyB0eXBlOiBUb2tlblR5cGUuUFJFRklYX01BVENIX1RPS0VOIH07XHJcbiAgICB2YXIgQ09MVU1OX1RPS0VOID0geyB0eXBlOiBUb2tlblR5cGUuQ09MVU1OX1RPS0VOIH07XHJcbiAgICB2YXIgREFTSF9NQVRDSF9UT0tFTiA9IHsgdHlwZTogVG9rZW5UeXBlLkRBU0hfTUFUQ0hfVE9LRU4gfTtcclxuICAgIHZhciBJTkNMVURFX01BVENIX1RPS0VOID0geyB0eXBlOiBUb2tlblR5cGUuSU5DTFVERV9NQVRDSF9UT0tFTiB9O1xyXG4gICAgdmFyIExFRlRfQ1VSTFlfQlJBQ0tFVF9UT0tFTiA9IHtcclxuICAgICAgICB0eXBlOiBUb2tlblR5cGUuTEVGVF9DVVJMWV9CUkFDS0VUX1RPS0VOXHJcbiAgICB9O1xyXG4gICAgdmFyIFJJR0hUX0NVUkxZX0JSQUNLRVRfVE9LRU4gPSB7XHJcbiAgICAgICAgdHlwZTogVG9rZW5UeXBlLlJJR0hUX0NVUkxZX0JSQUNLRVRfVE9LRU5cclxuICAgIH07XHJcbiAgICB2YXIgU1VCU1RSSU5HX01BVENIX1RPS0VOID0geyB0eXBlOiBUb2tlblR5cGUuU1VCU1RSSU5HX01BVENIX1RPS0VOIH07XHJcbiAgICB2YXIgQkFEX1VSTF9UT0tFTiA9IHsgdHlwZTogVG9rZW5UeXBlLkJBRF9VUkxfVE9LRU4gfTtcclxuICAgIHZhciBCQURfU1RSSU5HX1RPS0VOID0geyB0eXBlOiBUb2tlblR5cGUuQkFEX1NUUklOR19UT0tFTiB9O1xyXG4gICAgdmFyIENET19UT0tFTiA9IHsgdHlwZTogVG9rZW5UeXBlLkNET19UT0tFTiB9O1xyXG4gICAgdmFyIENEQ19UT0tFTiA9IHsgdHlwZTogVG9rZW5UeXBlLkNEQ19UT0tFTiB9O1xyXG4gICAgdmFyIENPTE9OX1RPS0VOID0geyB0eXBlOiBUb2tlblR5cGUuQ09MT05fVE9LRU4gfTtcclxuICAgIHZhciBTRU1JQ09MT05fVE9LRU4gPSB7IHR5cGU6IFRva2VuVHlwZS5TRU1JQ09MT05fVE9LRU4gfTtcclxuICAgIHZhciBMRUZUX1NRVUFSRV9CUkFDS0VUX1RPS0VOID0ge1xyXG4gICAgICAgIHR5cGU6IFRva2VuVHlwZS5MRUZUX1NRVUFSRV9CUkFDS0VUX1RPS0VOXHJcbiAgICB9O1xyXG4gICAgdmFyIFJJR0hUX1NRVUFSRV9CUkFDS0VUX1RPS0VOID0ge1xyXG4gICAgICAgIHR5cGU6IFRva2VuVHlwZS5SSUdIVF9TUVVBUkVfQlJBQ0tFVF9UT0tFTlxyXG4gICAgfTtcclxuICAgIHZhciBXSElURVNQQUNFX1RPS0VOID0geyB0eXBlOiBUb2tlblR5cGUuV0hJVEVTUEFDRV9UT0tFTiB9O1xyXG4gICAgdmFyIEVPRl9UT0tFTiA9IHsgdHlwZTogVG9rZW5UeXBlLkVPRl9UT0tFTiB9O1xyXG4gICAgdmFyIFRva2VuaXplciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBUb2tlbml6ZXIoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFRva2VuaXplci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAoY2h1bmspIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl92YWx1ZS5jb25jYXQodG9Db2RlUG9pbnRzKGNodW5rKSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBUb2tlbml6ZXIucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciB0b2tlbnMgPSBbXTtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gdGhpcy5jb25zdW1lVG9rZW4oKTtcclxuICAgICAgICAgICAgd2hpbGUgKHRva2VuICE9PSBFT0ZfVE9LRU4pIHtcclxuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKHRva2VuKTtcclxuICAgICAgICAgICAgICAgIHRva2VuID0gdGhpcy5jb25zdW1lVG9rZW4oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdG9rZW5zO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgVG9rZW5pemVyLnByb3RvdHlwZS5jb25zdW1lVG9rZW4gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciBjb2RlUG9pbnQgPSB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgc3dpdGNoIChjb2RlUG9pbnQpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgUVVPVEFUSU9OX01BUks6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uc3VtZVN0cmluZ1Rva2VuKFFVT1RBVElPTl9NQVJLKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgTlVNQkVSX1NJR046XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGMxID0gdGhpcy5wZWVrQ29kZVBvaW50KDApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjMiA9IHRoaXMucGVla0NvZGVQb2ludCgxKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgYzMgPSB0aGlzLnBlZWtDb2RlUG9pbnQoMik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFtZUNvZGVQb2ludChjMSkgfHwgaXNWYWxpZEVzY2FwZShjMiwgYzMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmbGFncyA9IGlzSWRlbnRpZmllclN0YXJ0KGMxLCBjMiwgYzMpID8gRkxBR19JRCA6IEZMQUdfVU5SRVNUUklDVEVEO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmNvbnN1bWVOYW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFRva2VuVHlwZS5IQVNIX1RPS0VOLCB2YWx1ZTogdmFsdWUsIGZsYWdzOiBmbGFncyB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgRE9MTEFSX1NJR046XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGVla0NvZGVQb2ludCgwKSA9PT0gRVFVQUxTX1NJR04pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lQ29kZVBvaW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTVUZGSVhfTUFUQ0hfVE9LRU47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBBUE9TVFJPUEhFOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnN1bWVTdHJpbmdUb2tlbihBUE9TVFJPUEhFKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgTEVGVF9QQVJFTlRIRVNJUzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTEVGVF9QQVJFTlRIRVNJU19UT0tFTjtcclxuICAgICAgICAgICAgICAgIGNhc2UgUklHSFRfUEFSRU5USEVTSVM6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJJR0hUX1BBUkVOVEhFU0lTX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBBU1RFUklTSzpcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wZWVrQ29kZVBvaW50KDApID09PSBFUVVBTFNfU0lHTikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNVQlNUUklOR19NQVRDSF9UT0tFTjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFBMVVNfU0lHTjpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOdW1iZXJTdGFydChjb2RlUG9pbnQsIHRoaXMucGVla0NvZGVQb2ludCgwKSwgdGhpcy5wZWVrQ29kZVBvaW50KDEpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3VtZUNvZGVQb2ludChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25zdW1lTnVtZXJpY1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDT01NQTpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ09NTUFfVE9LRU47XHJcbiAgICAgICAgICAgICAgICBjYXNlIEhZUEhFTl9NSU5VUzpcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZTEgPSBjb2RlUG9pbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGUyID0gdGhpcy5wZWVrQ29kZVBvaW50KDApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBlMyA9IHRoaXMucGVla0NvZGVQb2ludCgxKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOdW1iZXJTdGFydChlMSwgZTIsIGUzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3VtZUNvZGVQb2ludChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25zdW1lTnVtZXJpY1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0lkZW50aWZpZXJTdGFydChlMSwgZTIsIGUzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3VtZUNvZGVQb2ludChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25zdW1lSWRlbnRMaWtlVG9rZW4oKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUyID09PSBIWVBIRU5fTUlOVVMgJiYgZTMgPT09IEdSRUFURVJfVEhBTl9TSUdOKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENEQ19UT0tFTjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIEZVTExfU1RPUDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNOdW1iZXJTdGFydChjb2RlUG9pbnQsIHRoaXMucGVla0NvZGVQb2ludCgwKSwgdGhpcy5wZWVrQ29kZVBvaW50KDEpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3VtZUNvZGVQb2ludChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25zdW1lTnVtZXJpY1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBTT0xJRFVTOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBlZWtDb2RlUG9pbnQoMCkgPT09IEFTVEVSSVNLKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09PSBBU1RFUklTSykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PT0gU09MSURVUykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25zdW1lVG9rZW4oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PT0gRU9GKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uc3VtZVRva2VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENPTE9OOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBDT0xPTl9UT0tFTjtcclxuICAgICAgICAgICAgICAgIGNhc2UgU0VNSUNPTE9OOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBTRU1JQ09MT05fVE9LRU47XHJcbiAgICAgICAgICAgICAgICBjYXNlIExFU1NfVEhBTl9TSUdOOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBlZWtDb2RlUG9pbnQoMCkgPT09IEVYQ0xBTUFUSU9OX01BUksgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZWVrQ29kZVBvaW50KDEpID09PSBIWVBIRU5fTUlOVVMgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZWVrQ29kZVBvaW50KDIpID09PSBIWVBIRU5fTUlOVVMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lQ29kZVBvaW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ0RPX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgQ09NTUVSQ0lBTF9BVDpcclxuICAgICAgICAgICAgICAgICAgICB2YXIgYTEgPSB0aGlzLnBlZWtDb2RlUG9pbnQoMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGEyID0gdGhpcy5wZWVrQ29kZVBvaW50KDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBhMyA9IHRoaXMucGVla0NvZGVQb2ludCgyKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNJZGVudGlmaWVyU3RhcnQoYTEsIGEyLCBhMykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5jb25zdW1lTmFtZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiBUb2tlblR5cGUuQVRfS0VZV09SRF9UT0tFTiwgdmFsdWU6IHZhbHVlIH07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBMRUZUX1NRVUFSRV9CUkFDS0VUOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMRUZUX1NRVUFSRV9CUkFDS0VUX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBSRVZFUlNFX1NPTElEVVM6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVmFsaWRFc2NhcGUoY29kZVBvaW50LCB0aGlzLnBlZWtDb2RlUG9pbnQoMCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVjb25zdW1lQ29kZVBvaW50KGNvZGVQb2ludCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnN1bWVJZGVudExpa2VUb2tlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgUklHSFRfU1FVQVJFX0JSQUNLRVQ6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJJR0hUX1NRVUFSRV9CUkFDS0VUX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDSVJDVU1GTEVYX0FDQ0VOVDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wZWVrQ29kZVBvaW50KDApID09PSBFUVVBTFNfU0lHTikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBSRUZJWF9NQVRDSF9UT0tFTjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIExFRlRfQ1VSTFlfQlJBQ0tFVDpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTEVGVF9DVVJMWV9CUkFDS0VUX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBSSUdIVF9DVVJMWV9CUkFDS0VUOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBSSUdIVF9DVVJMWV9CUkFDS0VUX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgY2FzZSB1OlxyXG4gICAgICAgICAgICAgICAgY2FzZSBVOlxyXG4gICAgICAgICAgICAgICAgICAgIHZhciB1MSA9IHRoaXMucGVla0NvZGVQb2ludCgwKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdTIgPSB0aGlzLnBlZWtDb2RlUG9pbnQoMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHUxID09PSBQTFVTX1NJR04gJiYgKGlzSGV4KHUyKSB8fCB1MiA9PT0gUVVFU1RJT05fTUFSSykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lQ29kZVBvaW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZVVuaWNvZGVSYW5nZVRva2VuKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVjb25zdW1lQ29kZVBvaW50KGNvZGVQb2ludCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uc3VtZUlkZW50TGlrZVRva2VuKCk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFZFUlRJQ0FMX0xJTkU6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGVla0NvZGVQb2ludCgwKSA9PT0gRVFVQUxTX1NJR04pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lQ29kZVBvaW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBEQVNIX01BVENIX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wZWVrQ29kZVBvaW50KDApID09PSBWRVJUSUNBTF9MSU5FKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ09MVU1OX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgVElMREU6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGVla0NvZGVQb2ludCgwKSA9PT0gRVFVQUxTX1NJR04pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lQ29kZVBvaW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJTkNMVURFX01BVENIX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgRU9GOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBFT0ZfVE9LRU47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGlzV2hpdGVTcGFjZShjb2RlUG9pbnQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVXaGl0ZVNwYWNlKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gV0hJVEVTUEFDRV9UT0tFTjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaXNEaWdpdChjb2RlUG9pbnQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3VtZUNvZGVQb2ludChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uc3VtZU51bWVyaWNUb2tlbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpc05hbWVTdGFydENvZGVQb2ludChjb2RlUG9pbnQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3VtZUNvZGVQb2ludChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uc3VtZUlkZW50TGlrZVRva2VuKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogVG9rZW5UeXBlLkRFTElNX1RPS0VOLCB2YWx1ZTogZnJvbUNvZGVQb2ludChjb2RlUG9pbnQpIH07XHJcbiAgICAgICAgfTtcclxuICAgICAgICBUb2tlbml6ZXIucHJvdG90eXBlLmNvbnN1bWVDb2RlUG9pbnQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuX3ZhbHVlLnNoaWZ0KCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnID8gLTEgOiB2YWx1ZTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIFRva2VuaXplci5wcm90b3R5cGUucmVjb25zdW1lQ29kZVBvaW50ID0gZnVuY3Rpb24gKGNvZGVQb2ludCkge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZS51bnNoaWZ0KGNvZGVQb2ludCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBUb2tlbml6ZXIucHJvdG90eXBlLnBlZWtDb2RlUG9pbnQgPSBmdW5jdGlvbiAoZGVsdGEpIHtcclxuICAgICAgICAgICAgaWYgKGRlbHRhID49IHRoaXMuX3ZhbHVlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZVtkZWx0YV07XHJcbiAgICAgICAgfTtcclxuICAgICAgICBUb2tlbml6ZXIucHJvdG90eXBlLmNvbnN1bWVVbmljb2RlUmFuZ2VUb2tlbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIGRpZ2l0cyA9IFtdO1xyXG4gICAgICAgICAgICB2YXIgY29kZVBvaW50ID0gdGhpcy5jb25zdW1lQ29kZVBvaW50KCk7XHJcbiAgICAgICAgICAgIHdoaWxlIChpc0hleChjb2RlUG9pbnQpICYmIGRpZ2l0cy5sZW5ndGggPCA2KSB7XHJcbiAgICAgICAgICAgICAgICBkaWdpdHMucHVzaChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGhpcy5jb25zdW1lQ29kZVBvaW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHF1ZXN0aW9uTWFya3MgPSBmYWxzZTtcclxuICAgICAgICAgICAgd2hpbGUgKGNvZGVQb2ludCA9PT0gUVVFU1RJT05fTUFSSyAmJiBkaWdpdHMubGVuZ3RoIDwgNikge1xyXG4gICAgICAgICAgICAgICAgZGlnaXRzLnB1c2goY29kZVBvaW50KTtcclxuICAgICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICAgICAgcXVlc3Rpb25NYXJrcyA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHF1ZXN0aW9uTWFya3MpIHtcclxuICAgICAgICAgICAgICAgIHZhciBzdGFydF8xID0gcGFyc2VJbnQoZnJvbUNvZGVQb2ludC5hcHBseSh2b2lkIDAsIGRpZ2l0cy5tYXAoZnVuY3Rpb24gKGRpZ2l0KSB7IHJldHVybiAoZGlnaXQgPT09IFFVRVNUSU9OX01BUksgPyBaRVJPIDogZGlnaXQpOyB9KSksIDE2KTtcclxuICAgICAgICAgICAgICAgIHZhciBlbmQgPSBwYXJzZUludChmcm9tQ29kZVBvaW50LmFwcGx5KHZvaWQgMCwgZGlnaXRzLm1hcChmdW5jdGlvbiAoZGlnaXQpIHsgcmV0dXJuIChkaWdpdCA9PT0gUVVFU1RJT05fTUFSSyA/IEYgOiBkaWdpdCk7IH0pKSwgMTYpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogVG9rZW5UeXBlLlVOSUNPREVfUkFOR0VfVE9LRU4sIHN0YXJ0OiBzdGFydF8xLCBlbmQ6IGVuZCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBzdGFydCA9IHBhcnNlSW50KGZyb21Db2RlUG9pbnQuYXBwbHkodm9pZCAwLCBkaWdpdHMpLCAxNik7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBlZWtDb2RlUG9pbnQoMCkgPT09IEhZUEhFTl9NSU5VUyAmJiBpc0hleCh0aGlzLnBlZWtDb2RlUG9pbnQoMSkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGVuZERpZ2l0cyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKGlzSGV4KGNvZGVQb2ludCkgJiYgZW5kRGlnaXRzLmxlbmd0aCA8IDYpIHtcclxuICAgICAgICAgICAgICAgICAgICBlbmREaWdpdHMucHVzaChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGVuZCA9IHBhcnNlSW50KGZyb21Db2RlUG9pbnQuYXBwbHkodm9pZCAwLCBlbmREaWdpdHMpLCAxNik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiBUb2tlblR5cGUuVU5JQ09ERV9SQU5HRV9UT0tFTiwgc3RhcnQ6IHN0YXJ0LCBlbmQ6IGVuZCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogVG9rZW5UeXBlLlVOSUNPREVfUkFOR0VfVE9LRU4sIHN0YXJ0OiBzdGFydCwgZW5kOiBzdGFydCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBUb2tlbml6ZXIucHJvdG90eXBlLmNvbnN1bWVJZGVudExpa2VUb2tlbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5jb25zdW1lTmFtZSgpO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3VybCcgJiYgdGhpcy5wZWVrQ29kZVBvaW50KDApID09PSBMRUZUX1BBUkVOVEhFU0lTKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnN1bWVVcmxUb2tlbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMucGVla0NvZGVQb2ludCgwKSA9PT0gTEVGVF9QQVJFTlRIRVNJUykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lQ29kZVBvaW50KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiBUb2tlblR5cGUuRlVOQ1RJT05fVE9LRU4sIHZhbHVlOiB2YWx1ZSB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFRva2VuVHlwZS5JREVOVF9UT0tFTiwgdmFsdWU6IHZhbHVlIH07XHJcbiAgICAgICAgfTtcclxuICAgICAgICBUb2tlbml6ZXIucHJvdG90eXBlLmNvbnN1bWVVcmxUb2tlbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIHZhbHVlID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZVdoaXRlU3BhY2UoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMucGVla0NvZGVQb2ludCgwKSA9PT0gRU9GKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiBUb2tlblR5cGUuVVJMX1RPS0VOLCB2YWx1ZTogJycgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgbmV4dCA9IHRoaXMucGVla0NvZGVQb2ludCgwKTtcclxuICAgICAgICAgICAgaWYgKG5leHQgPT09IEFQT1NUUk9QSEUgfHwgbmV4dCA9PT0gUVVPVEFUSU9OX01BUkspIHtcclxuICAgICAgICAgICAgICAgIHZhciBzdHJpbmdUb2tlbiA9IHRoaXMuY29uc3VtZVN0cmluZ1Rva2VuKHRoaXMuY29uc3VtZUNvZGVQb2ludCgpKTtcclxuICAgICAgICAgICAgICAgIGlmIChzdHJpbmdUb2tlbi50eXBlID09PSBUb2tlblR5cGUuU1RSSU5HX1RPS0VOKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lV2hpdGVTcGFjZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBlZWtDb2RlUG9pbnQoMCkgPT09IEVPRiB8fCB0aGlzLnBlZWtDb2RlUG9pbnQoMCkgPT09IFJJR0hUX1BBUkVOVEhFU0lTKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiBUb2tlblR5cGUuVVJMX1RPS0VOLCB2YWx1ZTogc3RyaW5nVG9rZW4udmFsdWUgfTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVCYWRVcmxSZW1uYW50cygpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIEJBRF9VUkxfVE9LRU47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHZhciBjb2RlUG9pbnQgPSB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb2RlUG9pbnQgPT09IEVPRiB8fCBjb2RlUG9pbnQgPT09IFJJR0hUX1BBUkVOVEhFU0lTKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogVG9rZW5UeXBlLlVSTF9UT0tFTiwgdmFsdWU6IGZyb21Db2RlUG9pbnQuYXBwbHkodm9pZCAwLCB2YWx1ZSkgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzV2hpdGVTcGFjZShjb2RlUG9pbnQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lV2hpdGVTcGFjZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBlZWtDb2RlUG9pbnQoMCkgPT09IEVPRiB8fCB0aGlzLnBlZWtDb2RlUG9pbnQoMCkgPT09IFJJR0hUX1BBUkVOVEhFU0lTKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB0eXBlOiBUb2tlblR5cGUuVVJMX1RPS0VOLCB2YWx1ZTogZnJvbUNvZGVQb2ludC5hcHBseSh2b2lkIDAsIHZhbHVlKSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVCYWRVcmxSZW1uYW50cygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCQURfVVJMX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY29kZVBvaW50ID09PSBRVU9UQVRJT05fTUFSSyB8fFxyXG4gICAgICAgICAgICAgICAgICAgIGNvZGVQb2ludCA9PT0gQVBPU1RST1BIRSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIGNvZGVQb2ludCA9PT0gTEVGVF9QQVJFTlRIRVNJUyB8fFxyXG4gICAgICAgICAgICAgICAgICAgIGlzTm9uUHJpbnRhYmxlQ29kZVBvaW50KGNvZGVQb2ludCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVCYWRVcmxSZW1uYW50cygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCQURfVVJMX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY29kZVBvaW50ID09PSBSRVZFUlNFX1NPTElEVVMpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZEVzY2FwZShjb2RlUG9pbnQsIHRoaXMucGVla0NvZGVQb2ludCgwKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUucHVzaCh0aGlzLmNvbnN1bWVFc2NhcGVkQ29kZVBvaW50KCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lQmFkVXJsUmVtbmFudHMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJBRF9VUkxfVE9LRU47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUucHVzaChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBUb2tlbml6ZXIucHJvdG90eXBlLmNvbnN1bWVXaGl0ZVNwYWNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB3aGlsZSAoaXNXaGl0ZVNwYWNlKHRoaXMucGVla0NvZGVQb2ludCgwKSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBUb2tlbml6ZXIucHJvdG90eXBlLmNvbnN1bWVCYWRVcmxSZW1uYW50cyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHZhciBjb2RlUG9pbnQgPSB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgIGlmIChjb2RlUG9pbnQgPT09IFJJR0hUX1BBUkVOVEhFU0lTIHx8IGNvZGVQb2ludCA9PT0gRU9GKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWRFc2NhcGUoY29kZVBvaW50LCB0aGlzLnBlZWtDb2RlUG9pbnQoMCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lRXNjYXBlZENvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBUb2tlbml6ZXIucHJvdG90eXBlLmNvbnN1bWVTdHJpbmdTbGljZSA9IGZ1bmN0aW9uIChjb3VudCkge1xyXG4gICAgICAgICAgICB2YXIgU0xJQ0VfU1RBQ0tfU0laRSA9IDYwMDAwO1xyXG4gICAgICAgICAgICB2YXIgdmFsdWUgPSAnJztcclxuICAgICAgICAgICAgd2hpbGUgKGNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGFtb3VudCA9IE1hdGgubWluKFNMSUNFX1NUQUNLX1NJWkUsIGNvdW50KTtcclxuICAgICAgICAgICAgICAgIHZhbHVlICs9IGZyb21Db2RlUG9pbnQuYXBwbHkodm9pZCAwLCB0aGlzLl92YWx1ZS5zcGxpY2UoMCwgYW1vdW50KSk7XHJcbiAgICAgICAgICAgICAgICBjb3VudCAtPSBhbW91bnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUuc2hpZnQoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgVG9rZW5pemVyLnByb3RvdHlwZS5jb25zdW1lU3RyaW5nVG9rZW4gPSBmdW5jdGlvbiAoZW5kaW5nQ29kZVBvaW50KSB7XHJcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICB2YXIgaSA9IDA7XHJcbiAgICAgICAgICAgIGRvIHtcclxuICAgICAgICAgICAgICAgIHZhciBjb2RlUG9pbnQgPSB0aGlzLl92YWx1ZVtpXTtcclxuICAgICAgICAgICAgICAgIGlmIChjb2RlUG9pbnQgPT09IEVPRiB8fCBjb2RlUG9pbnQgPT09IHVuZGVmaW5lZCB8fCBjb2RlUG9pbnQgPT09IGVuZGluZ0NvZGVQb2ludCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlICs9IHRoaXMuY29uc3VtZVN0cmluZ1NsaWNlKGkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFRva2VuVHlwZS5TVFJJTkdfVE9LRU4sIHZhbHVlOiB2YWx1ZSB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGNvZGVQb2ludCA9PT0gTElORV9GRUVEKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsdWUuc3BsaWNlKDAsIGkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCQURfU1RSSU5HX1RPS0VOO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGNvZGVQb2ludCA9PT0gUkVWRVJTRV9TT0xJRFVTKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHQgPSB0aGlzLl92YWx1ZVtpICsgMV07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgIT09IEVPRiAmJiBuZXh0ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgPT09IExJTkVfRkVFRCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKz0gdGhpcy5jb25zdW1lU3RyaW5nU2xpY2UoaSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpID0gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZS5zaGlmdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzVmFsaWRFc2NhcGUoY29kZVBvaW50LCBuZXh0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKz0gdGhpcy5jb25zdW1lU3RyaW5nU2xpY2UoaSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSBmcm9tQ29kZVBvaW50KHRoaXMuY29uc3VtZUVzY2FwZWRDb2RlUG9pbnQoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpID0gLTE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpKys7XHJcbiAgICAgICAgICAgIH0gd2hpbGUgKHRydWUpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgVG9rZW5pemVyLnByb3RvdHlwZS5jb25zdW1lTnVtYmVyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgcmVwciA9IFtdO1xyXG4gICAgICAgICAgICB2YXIgdHlwZSA9IEZMQUdfSU5URUdFUjtcclxuICAgICAgICAgICAgdmFyIGMxID0gdGhpcy5wZWVrQ29kZVBvaW50KDApO1xyXG4gICAgICAgICAgICBpZiAoYzEgPT09IFBMVVNfU0lHTiB8fCBjMSA9PT0gSFlQSEVOX01JTlVTKSB7XHJcbiAgICAgICAgICAgICAgICByZXByLnB1c2godGhpcy5jb25zdW1lQ29kZVBvaW50KCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHdoaWxlIChpc0RpZ2l0KHRoaXMucGVla0NvZGVQb2ludCgwKSkpIHtcclxuICAgICAgICAgICAgICAgIHJlcHIucHVzaCh0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYzEgPSB0aGlzLnBlZWtDb2RlUG9pbnQoMCk7XHJcbiAgICAgICAgICAgIHZhciBjMiA9IHRoaXMucGVla0NvZGVQb2ludCgxKTtcclxuICAgICAgICAgICAgaWYgKGMxID09PSBGVUxMX1NUT1AgJiYgaXNEaWdpdChjMikpIHtcclxuICAgICAgICAgICAgICAgIHJlcHIucHVzaCh0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSwgdGhpcy5jb25zdW1lQ29kZVBvaW50KCkpO1xyXG4gICAgICAgICAgICAgICAgdHlwZSA9IEZMQUdfTlVNQkVSO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKGlzRGlnaXQodGhpcy5wZWVrQ29kZVBvaW50KDApKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcHIucHVzaCh0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYzEgPSB0aGlzLnBlZWtDb2RlUG9pbnQoMCk7XHJcbiAgICAgICAgICAgIGMyID0gdGhpcy5wZWVrQ29kZVBvaW50KDEpO1xyXG4gICAgICAgICAgICB2YXIgYzMgPSB0aGlzLnBlZWtDb2RlUG9pbnQoMik7XHJcbiAgICAgICAgICAgIGlmICgoYzEgPT09IEUgfHwgYzEgPT09IGUpICYmICgoKGMyID09PSBQTFVTX1NJR04gfHwgYzIgPT09IEhZUEhFTl9NSU5VUykgJiYgaXNEaWdpdChjMykpIHx8IGlzRGlnaXQoYzIpKSkge1xyXG4gICAgICAgICAgICAgICAgcmVwci5wdXNoKHRoaXMuY29uc3VtZUNvZGVQb2ludCgpLCB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSk7XHJcbiAgICAgICAgICAgICAgICB0eXBlID0gRkxBR19OVU1CRVI7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAoaXNEaWdpdCh0aGlzLnBlZWtDb2RlUG9pbnQoMCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVwci5wdXNoKHRoaXMuY29uc3VtZUNvZGVQb2ludCgpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gW3N0cmluZ1RvTnVtYmVyKHJlcHIpLCB0eXBlXTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIFRva2VuaXplci5wcm90b3R5cGUuY29uc3VtZU51bWVyaWNUb2tlbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIF9hID0gdGhpcy5jb25zdW1lTnVtYmVyKCksIG51bWJlciA9IF9hWzBdLCBmbGFncyA9IF9hWzFdO1xyXG4gICAgICAgICAgICB2YXIgYzEgPSB0aGlzLnBlZWtDb2RlUG9pbnQoMCk7XHJcbiAgICAgICAgICAgIHZhciBjMiA9IHRoaXMucGVla0NvZGVQb2ludCgxKTtcclxuICAgICAgICAgICAgdmFyIGMzID0gdGhpcy5wZWVrQ29kZVBvaW50KDIpO1xyXG4gICAgICAgICAgICBpZiAoaXNJZGVudGlmaWVyU3RhcnQoYzEsIGMyLCBjMykpIHtcclxuICAgICAgICAgICAgICAgIHZhciB1bml0ID0gdGhpcy5jb25zdW1lTmFtZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogVG9rZW5UeXBlLkRJTUVOU0lPTl9UT0tFTiwgbnVtYmVyOiBudW1iZXIsIGZsYWdzOiBmbGFncywgdW5pdDogdW5pdCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjMSA9PT0gUEVSQ0VOVEFHRV9TSUdOKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFRva2VuVHlwZS5QRVJDRU5UQUdFX1RPS0VOLCBudW1iZXI6IG51bWJlciwgZmxhZ3M6IGZsYWdzIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogVG9rZW5UeXBlLk5VTUJFUl9UT0tFTiwgbnVtYmVyOiBudW1iZXIsIGZsYWdzOiBmbGFncyB9O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgVG9rZW5pemVyLnByb3RvdHlwZS5jb25zdW1lRXNjYXBlZENvZGVQb2ludCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIGNvZGVQb2ludCA9IHRoaXMuY29uc3VtZUNvZGVQb2ludCgpO1xyXG4gICAgICAgICAgICBpZiAoaXNIZXgoY29kZVBvaW50KSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGhleCA9IGZyb21Db2RlUG9pbnQoY29kZVBvaW50KTtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChpc0hleCh0aGlzLnBlZWtDb2RlUG9pbnQoMCkpICYmIGhleC5sZW5ndGggPCA2KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGV4ICs9IGZyb21Db2RlUG9pbnQodGhpcy5jb25zdW1lQ29kZVBvaW50KCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGlzV2hpdGVTcGFjZSh0aGlzLnBlZWtDb2RlUG9pbnQoMCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lQ29kZVBvaW50KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YXIgaGV4Q29kZVBvaW50ID0gcGFyc2VJbnQoaGV4LCAxNik7XHJcbiAgICAgICAgICAgICAgICBpZiAoaGV4Q29kZVBvaW50ID09PSAwIHx8IGlzU3Vycm9nYXRlQ29kZVBvaW50KGhleENvZGVQb2ludCkgfHwgaGV4Q29kZVBvaW50ID4gMHgxMGZmZmYpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhleENvZGVQb2ludDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoY29kZVBvaW50ID09PSBFT0YpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBSRVBMQUNFTUVOVF9DSEFSQUNURVI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGNvZGVQb2ludDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIFRva2VuaXplci5wcm90b3R5cGUuY29uc3VtZU5hbWUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSAnJztcclxuICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHZhciBjb2RlUG9pbnQgPSB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtcclxuICAgICAgICAgICAgICAgIGlmIChpc05hbWVDb2RlUG9pbnQoY29kZVBvaW50KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBmcm9tQ29kZVBvaW50KGNvZGVQb2ludCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpc1ZhbGlkRXNjYXBlKGNvZGVQb2ludCwgdGhpcy5wZWVrQ29kZVBvaW50KDApKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBmcm9tQ29kZVBvaW50KHRoaXMuY29uc3VtZUVzY2FwZWRDb2RlUG9pbnQoKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3VtZUNvZGVQb2ludChjb2RlUG9pbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBUb2tlbml6ZXI7XHJcbiAgICB9KCkpO1xuXG4gICAgdmFyIFBhcnNlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBQYXJzZXIodG9rZW5zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Rva2VucyA9IHRva2VucztcclxuICAgICAgICB9XHJcbiAgICAgICAgUGFyc2VyLmNyZWF0ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB2YXIgdG9rZW5pemVyID0gbmV3IFRva2VuaXplcigpO1xyXG4gICAgICAgICAgICB0b2tlbml6ZXIud3JpdGUodmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFBhcnNlcih0b2tlbml6ZXIucmVhZCgpKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIFBhcnNlci5wYXJzZVZhbHVlID0gZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBQYXJzZXIuY3JlYXRlKHZhbHVlKS5wYXJzZUNvbXBvbmVudFZhbHVlKCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBQYXJzZXIucGFyc2VWYWx1ZXMgPSBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFBhcnNlci5jcmVhdGUodmFsdWUpLnBhcnNlQ29tcG9uZW50VmFsdWVzKCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBQYXJzZXIucHJvdG90eXBlLnBhcnNlQ29tcG9uZW50VmFsdWUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciB0b2tlbiA9IHRoaXMuY29uc3VtZVRva2VuKCk7XHJcbiAgICAgICAgICAgIHdoaWxlICh0b2tlbi50eXBlID09PSBUb2tlblR5cGUuV0hJVEVTUEFDRV9UT0tFTikge1xyXG4gICAgICAgICAgICAgICAgdG9rZW4gPSB0aGlzLmNvbnN1bWVUb2tlbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlblR5cGUuRU9GX1RPS0VOKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoXCJFcnJvciBwYXJzaW5nIENTUyBjb21wb25lbnQgdmFsdWUsIHVuZXhwZWN0ZWQgRU9GXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMucmVjb25zdW1lVG9rZW4odG9rZW4pO1xyXG4gICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmNvbnN1bWVDb21wb25lbnRWYWx1ZSgpO1xyXG4gICAgICAgICAgICBkbyB7XHJcbiAgICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMuY29uc3VtZVRva2VuKCk7XHJcbiAgICAgICAgICAgIH0gd2hpbGUgKHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5XSElURVNQQUNFX1RPS0VOKTtcclxuICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5FT0ZfVE9LRU4pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoXCJFcnJvciBwYXJzaW5nIENTUyBjb21wb25lbnQgdmFsdWUsIG11bHRpcGxlIHZhbHVlcyBmb3VuZCB3aGVuIGV4cGVjdGluZyBvbmx5IG9uZVwiKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIFBhcnNlci5wcm90b3R5cGUucGFyc2VDb21wb25lbnRWYWx1ZXMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTtcclxuICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuY29uc3VtZUNvbXBvbmVudFZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUudHlwZSA9PT0gVG9rZW5UeXBlLkVPRl9UT0tFTikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBQYXJzZXIucHJvdG90eXBlLmNvbnN1bWVDb21wb25lbnRWYWx1ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gdGhpcy5jb25zdW1lVG9rZW4oKTtcclxuICAgICAgICAgICAgc3dpdGNoICh0b2tlbi50eXBlKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5MRUZUX0NVUkxZX0JSQUNLRVRfVE9LRU46XHJcbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5MRUZUX1NRVUFSRV9CUkFDS0VUX1RPS0VOOlxyXG4gICAgICAgICAgICAgICAgY2FzZSBUb2tlblR5cGUuTEVGVF9QQVJFTlRIRVNJU19UT0tFTjpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25zdW1lU2ltcGxlQmxvY2sodG9rZW4udHlwZSk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFRva2VuVHlwZS5GVU5DVElPTl9UT0tFTjpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25zdW1lRnVuY3Rpb24odG9rZW4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0b2tlbjtcclxuICAgICAgICB9O1xyXG4gICAgICAgIFBhcnNlci5wcm90b3R5cGUuY29uc3VtZVNpbXBsZUJsb2NrID0gZnVuY3Rpb24gKHR5cGUpIHtcclxuICAgICAgICAgICAgdmFyIGJsb2NrID0geyB0eXBlOiB0eXBlLCB2YWx1ZXM6IFtdIH07XHJcbiAgICAgICAgICAgIHZhciB0b2tlbiA9IHRoaXMuY29uc3VtZVRva2VuKCk7XHJcbiAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkVPRl9UT0tFTiB8fCBpc0VuZGluZ1Rva2VuRm9yKHRva2VuLCB0eXBlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBibG9jaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMucmVjb25zdW1lVG9rZW4odG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgYmxvY2sudmFsdWVzLnB1c2godGhpcy5jb25zdW1lQ29tcG9uZW50VmFsdWUoKSk7XHJcbiAgICAgICAgICAgICAgICB0b2tlbiA9IHRoaXMuY29uc3VtZVRva2VuKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIFBhcnNlci5wcm90b3R5cGUuY29uc3VtZUZ1bmN0aW9uID0gZnVuY3Rpb24gKGZ1bmN0aW9uVG9rZW4pIHtcclxuICAgICAgICAgICAgdmFyIGNzc0Z1bmN0aW9uID0ge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogZnVuY3Rpb25Ub2tlbi52YWx1ZSxcclxuICAgICAgICAgICAgICAgIHZhbHVlczogW10sXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBUb2tlblR5cGUuRlVOQ1RJT05cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHZhciB0b2tlbiA9IHRoaXMuY29uc3VtZVRva2VuKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkVPRl9UT0tFTiB8fCB0b2tlbi50eXBlID09PSBUb2tlblR5cGUuUklHSFRfUEFSRU5USEVTSVNfVE9LRU4pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3NzRnVuY3Rpb247XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY29uc3VtZVRva2VuKHRva2VuKTtcclxuICAgICAgICAgICAgICAgIGNzc0Z1bmN0aW9uLnZhbHVlcy5wdXNoKHRoaXMuY29uc3VtZUNvbXBvbmVudFZhbHVlKCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBQYXJzZXIucHJvdG90eXBlLmNvbnN1bWVUb2tlbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIHRva2VuID0gdGhpcy5fdG9rZW5zLnNoaWZ0KCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdG9rZW4gPT09ICd1bmRlZmluZWQnID8gRU9GX1RPS0VOIDogdG9rZW47XHJcbiAgICAgICAgfTtcclxuICAgICAgICBQYXJzZXIucHJvdG90eXBlLnJlY29uc3VtZVRva2VuID0gZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Rva2Vucy51bnNoaWZ0KHRva2VuKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBQYXJzZXI7XHJcbiAgICB9KCkpO1xyXG4gICAgdmFyIGlzRGltZW5zaW9uVG9rZW4gPSBmdW5jdGlvbiAodG9rZW4pIHsgcmV0dXJuIHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5ESU1FTlNJT05fVE9LRU47IH07XHJcbiAgICB2YXIgaXNOdW1iZXJUb2tlbiA9IGZ1bmN0aW9uICh0b2tlbikgeyByZXR1cm4gdG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLk5VTUJFUl9UT0tFTjsgfTtcclxuICAgIHZhciBpc0lkZW50VG9rZW4gPSBmdW5jdGlvbiAodG9rZW4pIHsgcmV0dXJuIHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5JREVOVF9UT0tFTjsgfTtcclxuICAgIHZhciBpc1N0cmluZ1Rva2VuID0gZnVuY3Rpb24gKHRva2VuKSB7IHJldHVybiB0b2tlbi50eXBlID09PSBUb2tlblR5cGUuU1RSSU5HX1RPS0VOOyB9O1xyXG4gICAgdmFyIGlzSWRlbnRXaXRoVmFsdWUgPSBmdW5jdGlvbiAodG9rZW4sIHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIGlzSWRlbnRUb2tlbih0b2tlbikgJiYgdG9rZW4udmFsdWUgPT09IHZhbHVlO1xyXG4gICAgfTtcclxuICAgIHZhciBub25XaGl0ZVNwYWNlID0gZnVuY3Rpb24gKHRva2VuKSB7IHJldHVybiB0b2tlbi50eXBlICE9PSBUb2tlblR5cGUuV0hJVEVTUEFDRV9UT0tFTjsgfTtcclxuICAgIHZhciBub25GdW5jdGlvbkFyZ1NlcGFyYXRvciA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgICAgIHJldHVybiB0b2tlbi50eXBlICE9PSBUb2tlblR5cGUuV0hJVEVTUEFDRV9UT0tFTiAmJiB0b2tlbi50eXBlICE9PSBUb2tlblR5cGUuQ09NTUFfVE9LRU47XHJcbiAgICB9O1xyXG4gICAgdmFyIHBhcnNlRnVuY3Rpb25BcmdzID0gZnVuY3Rpb24gKHRva2Vucykge1xyXG4gICAgICAgIHZhciBhcmdzID0gW107XHJcbiAgICAgICAgdmFyIGFyZyA9IFtdO1xyXG4gICAgICAgIHRva2Vucy5mb3JFYWNoKGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkNPTU1BX1RPS0VOKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXJnLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVycm9yIHBhcnNpbmcgZnVuY3Rpb24gYXJncywgemVybyB0b2tlbnMgZm9yIGFyZ1wiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGFyZ3MucHVzaChhcmcpO1xyXG4gICAgICAgICAgICAgICAgYXJnID0gW107XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgIT09IFRva2VuVHlwZS5XSElURVNQQUNFX1RPS0VOKSB7XHJcbiAgICAgICAgICAgICAgICBhcmcucHVzaCh0b2tlbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoYXJnLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBhcmdzLnB1c2goYXJnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGFyZ3M7XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzRW5kaW5nVG9rZW5Gb3IgPSBmdW5jdGlvbiAodG9rZW4sIHR5cGUpIHtcclxuICAgICAgICBpZiAodHlwZSA9PT0gVG9rZW5UeXBlLkxFRlRfQ1VSTFlfQlJBQ0tFVF9UT0tFTiAmJiB0b2tlbi50eXBlID09PSBUb2tlblR5cGUuUklHSFRfQ1VSTFlfQlJBQ0tFVF9UT0tFTikge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGUgPT09IFRva2VuVHlwZS5MRUZUX1NRVUFSRV9CUkFDS0VUX1RPS0VOICYmIHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5SSUdIVF9TUVVBUkVfQlJBQ0tFVF9UT0tFTikge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHR5cGUgPT09IFRva2VuVHlwZS5MRUZUX1BBUkVOVEhFU0lTX1RPS0VOICYmIHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5SSUdIVF9QQVJFTlRIRVNJU19UT0tFTjtcclxuICAgIH07XG5cbiAgICB2YXIgaXNMZW5ndGggPSBmdW5jdGlvbiAodG9rZW4pIHtcclxuICAgICAgICByZXR1cm4gdG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLk5VTUJFUl9UT0tFTiB8fCB0b2tlbi50eXBlID09PSBUb2tlblR5cGUuRElNRU5TSU9OX1RPS0VOO1xyXG4gICAgfTtcblxuICAgIHZhciBpc0xlbmd0aFBlcmNlbnRhZ2UgPSBmdW5jdGlvbiAodG9rZW4pIHtcclxuICAgICAgICByZXR1cm4gdG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLlBFUkNFTlRBR0VfVE9LRU4gfHwgaXNMZW5ndGgodG9rZW4pO1xyXG4gICAgfTtcclxuICAgIHZhciBwYXJzZUxlbmd0aFBlcmNlbnRhZ2VUdXBsZSA9IGZ1bmN0aW9uICh0b2tlbnMpIHtcclxuICAgICAgICByZXR1cm4gdG9rZW5zLmxlbmd0aCA+IDEgPyBbdG9rZW5zWzBdLCB0b2tlbnNbMV1dIDogW3Rva2Vuc1swXV07XHJcbiAgICB9O1xyXG4gICAgdmFyIFpFUk9fTEVOR1RIID0ge1xyXG4gICAgICAgIHR5cGU6IFRva2VuVHlwZS5OVU1CRVJfVE9LRU4sXHJcbiAgICAgICAgbnVtYmVyOiAwLFxyXG4gICAgICAgIGZsYWdzOiBGTEFHX0lOVEVHRVJcclxuICAgIH07XHJcbiAgICB2YXIgRklGVFlfUEVSQ0VOVCA9IHtcclxuICAgICAgICB0eXBlOiBUb2tlblR5cGUuUEVSQ0VOVEFHRV9UT0tFTixcclxuICAgICAgICBudW1iZXI6IDUwLFxyXG4gICAgICAgIGZsYWdzOiBGTEFHX0lOVEVHRVJcclxuICAgIH07XHJcbiAgICB2YXIgSFVORFJFRF9QRVJDRU5UID0ge1xyXG4gICAgICAgIHR5cGU6IFRva2VuVHlwZS5QRVJDRU5UQUdFX1RPS0VOLFxyXG4gICAgICAgIG51bWJlcjogMTAwLFxyXG4gICAgICAgIGZsYWdzOiBGTEFHX0lOVEVHRVJcclxuICAgIH07XHJcbiAgICB2YXIgZ2V0QWJzb2x1dGVWYWx1ZUZvclR1cGxlID0gZnVuY3Rpb24gKHR1cGxlLCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgICAgICAgdmFyIHggPSB0dXBsZVswXSwgeSA9IHR1cGxlWzFdO1xyXG4gICAgICAgIHJldHVybiBbZ2V0QWJzb2x1dGVWYWx1ZSh4LCB3aWR0aCksIGdldEFic29sdXRlVmFsdWUodHlwZW9mIHkgIT09ICd1bmRlZmluZWQnID8geSA6IHgsIGhlaWdodCldO1xyXG4gICAgfTtcclxuICAgIHZhciBnZXRBYnNvbHV0ZVZhbHVlID0gZnVuY3Rpb24gKHRva2VuLCBwYXJlbnQpIHtcclxuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLlBFUkNFTlRBR0VfVE9LRU4pIHtcclxuICAgICAgICAgICAgcmV0dXJuICh0b2tlbi5udW1iZXIgLyAxMDApICogcGFyZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNEaW1lbnNpb25Ub2tlbih0b2tlbikpIHtcclxuICAgICAgICAgICAgc3dpdGNoICh0b2tlbi51bml0KSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdyZW0nOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnZW0nOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAxNiAqIHRva2VuLm51bWJlcjsgLy8gVE9ETyB1c2UgY29ycmVjdCBmb250LXNpemVcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3B4JzpcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuLm51bWJlcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdG9rZW4ubnVtYmVyO1xyXG4gICAgfTtcblxuICAgIHZhciBERUcgPSAnZGVnJztcclxuICAgIHZhciBHUkFEID0gJ2dyYWQnO1xyXG4gICAgdmFyIFJBRCA9ICdyYWQnO1xyXG4gICAgdmFyIFRVUk4gPSAndHVybic7XHJcbiAgICB2YXIgYW5nbGUgPSB7XHJcbiAgICAgICAgbmFtZTogJ2FuZ2xlJyxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZS50eXBlID09PSBUb2tlblR5cGUuRElNRU5TSU9OX1RPS0VOKSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnVuaXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERFRzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChNYXRoLlBJICogdmFsdWUubnVtYmVyKSAvIDE4MDtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEdSQUQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoTWF0aC5QSSAvIDIwMCkgKiB2YWx1ZS5udW1iZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBSQUQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5udW1iZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBUVVJOOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5QSSAqIDIgKiB2YWx1ZS5udW1iZXI7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgYW5nbGUgdHlwZVwiKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzQW5nbGUgPSBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICBpZiAodmFsdWUudHlwZSA9PT0gVG9rZW5UeXBlLkRJTUVOU0lPTl9UT0tFTikge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUudW5pdCA9PT0gREVHIHx8IHZhbHVlLnVuaXQgPT09IEdSQUQgfHwgdmFsdWUudW5pdCA9PT0gUkFEIHx8IHZhbHVlLnVuaXQgPT09IFRVUk4pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH07XHJcbiAgICB2YXIgcGFyc2VOYW1lZFNpZGUgPSBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgdmFyIHNpZGVPckNvcm5lciA9IHRva2Vuc1xyXG4gICAgICAgICAgICAuZmlsdGVyKGlzSWRlbnRUb2tlbilcclxuICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAoaWRlbnQpIHsgcmV0dXJuIGlkZW50LnZhbHVlOyB9KVxyXG4gICAgICAgICAgICAuam9pbignICcpO1xyXG4gICAgICAgIHN3aXRjaCAoc2lkZU9yQ29ybmVyKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvIGJvdHRvbSByaWdodCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvIHJpZ2h0IGJvdHRvbSc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQgdG9wJzpcclxuICAgICAgICAgICAgY2FzZSAndG9wIGxlZnQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtaRVJPX0xFTkdUSCwgWkVST19MRU5HVEhdO1xyXG4gICAgICAgICAgICBjYXNlICd0byB0b3AnOlxyXG4gICAgICAgICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZygwKTtcclxuICAgICAgICAgICAgY2FzZSAndG8gYm90dG9tIGxlZnQnOlxyXG4gICAgICAgICAgICBjYXNlICd0byBsZWZ0IGJvdHRvbSc6XHJcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0IHRvcCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvcCByaWdodCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW1pFUk9fTEVOR1RILCBIVU5EUkVEX1BFUkNFTlRdO1xyXG4gICAgICAgICAgICBjYXNlICd0byByaWdodCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZyg5MCk7XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvIHRvcCBsZWZ0JzpcclxuICAgICAgICAgICAgY2FzZSAndG8gbGVmdCB0b3AnOlxyXG4gICAgICAgICAgICBjYXNlICdyaWdodCBib3R0b20nOlxyXG4gICAgICAgICAgICBjYXNlICdib3R0b20gcmlnaHQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtIVU5EUkVEX1BFUkNFTlQsIEhVTkRSRURfUEVSQ0VOVF07XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvIGJvdHRvbSc6XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVnKDE4MCk7XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvIHRvcCByaWdodCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvIHJpZ2h0IHRvcCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQgYm90dG9tJzpcclxuICAgICAgICAgICAgY2FzZSAnYm90dG9tIGxlZnQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtIVU5EUkVEX1BFUkNFTlQsIFpFUk9fTEVOR1RIXTtcclxuICAgICAgICAgICAgY2FzZSAndG8gbGVmdCc6XHJcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBkZWcoMjcwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9O1xyXG4gICAgdmFyIGRlZyA9IGZ1bmN0aW9uIChkZWcpIHsgcmV0dXJuIChNYXRoLlBJICogZGVnKSAvIDE4MDsgfTtcblxuICAgIHZhciBjb2xvciA9IHtcclxuICAgICAgICBuYW1lOiAnY29sb3InLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09IFRva2VuVHlwZS5GVU5DVElPTikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvbG9yRnVuY3Rpb24gPSBTVVBQT1JURURfQ09MT1JfRlVOQ1RJT05TW3ZhbHVlLm5hbWVdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2xvckZ1bmN0aW9uID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkF0dGVtcHRpbmcgdG8gcGFyc2UgYW4gdW5zdXBwb3J0ZWQgY29sb3IgZnVuY3Rpb24gXFxcIlwiICsgdmFsdWUubmFtZSArIFwiXFxcIlwiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBjb2xvckZ1bmN0aW9uKHZhbHVlLnZhbHVlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09IFRva2VuVHlwZS5IQVNIX1RPS0VOKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUudmFsdWUubGVuZ3RoID09PSAzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMCwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGcgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMSwgMik7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGIgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMiwgMyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhY2socGFyc2VJbnQociArIHIsIDE2KSwgcGFyc2VJbnQoZyArIGcsIDE2KSwgcGFyc2VJbnQoYiArIGIsIDE2KSwgMSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUudmFsdWUubGVuZ3RoID09PSA0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMCwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGcgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMSwgMik7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGIgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMiwgMyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMywgNCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhY2socGFyc2VJbnQociArIHIsIDE2KSwgcGFyc2VJbnQoZyArIGcsIDE2KSwgcGFyc2VJbnQoYiArIGIsIDE2KSwgcGFyc2VJbnQoYSArIGEsIDE2KSAvIDI1NSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUudmFsdWUubGVuZ3RoID09PSA2KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMCwgMik7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGcgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMiwgNCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGIgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoNCwgNik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhY2socGFyc2VJbnQociwgMTYpLCBwYXJzZUludChnLCAxNiksIHBhcnNlSW50KGIsIDE2KSwgMSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUudmFsdWUubGVuZ3RoID09PSA4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMCwgMik7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGcgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoMiwgNCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGIgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoNCwgNik7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSB2YWx1ZS52YWx1ZS5zdWJzdHJpbmcoNiwgOCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhY2socGFyc2VJbnQociwgMTYpLCBwYXJzZUludChnLCAxNiksIHBhcnNlSW50KGIsIDE2KSwgcGFyc2VJbnQoYSwgMTYpIC8gMjU1KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodmFsdWUudHlwZSA9PT0gVG9rZW5UeXBlLklERU5UX1RPS0VOKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbmFtZWRDb2xvciA9IENPTE9SU1t2YWx1ZS52YWx1ZS50b1VwcGVyQ2FzZSgpXTtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgbmFtZWRDb2xvciAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZWRDb2xvcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gQ09MT1JTLlRSQU5TUEFSRU5UO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgaXNUcmFuc3BhcmVudCA9IGZ1bmN0aW9uIChjb2xvcikgeyByZXR1cm4gKDB4ZmYgJiBjb2xvcikgPT09IDA7IH07XHJcbiAgICB2YXIgYXNTdHJpbmcgPSBmdW5jdGlvbiAoY29sb3IpIHtcclxuICAgICAgICB2YXIgYWxwaGEgPSAweGZmICYgY29sb3I7XHJcbiAgICAgICAgdmFyIGJsdWUgPSAweGZmICYgKGNvbG9yID4+IDgpO1xyXG4gICAgICAgIHZhciBncmVlbiA9IDB4ZmYgJiAoY29sb3IgPj4gMTYpO1xyXG4gICAgICAgIHZhciByZWQgPSAweGZmICYgKGNvbG9yID4+IDI0KTtcclxuICAgICAgICByZXR1cm4gYWxwaGEgPCAyNTUgPyBcInJnYmEoXCIgKyByZWQgKyBcIixcIiArIGdyZWVuICsgXCIsXCIgKyBibHVlICsgXCIsXCIgKyBhbHBoYSAvIDI1NSArIFwiKVwiIDogXCJyZ2IoXCIgKyByZWQgKyBcIixcIiArIGdyZWVuICsgXCIsXCIgKyBibHVlICsgXCIpXCI7XHJcbiAgICB9O1xyXG4gICAgdmFyIHBhY2sgPSBmdW5jdGlvbiAociwgZywgYiwgYSkge1xyXG4gICAgICAgIHJldHVybiAoKHIgPDwgMjQpIHwgKGcgPDwgMTYpIHwgKGIgPDwgOCkgfCAoTWF0aC5yb3VuZChhICogMjU1KSA8PCAwKSkgPj4+IDA7XHJcbiAgICB9O1xyXG4gICAgdmFyIGdldFRva2VuQ29sb3JWYWx1ZSA9IGZ1bmN0aW9uICh0b2tlbiwgaSkge1xyXG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlblR5cGUuTlVNQkVSX1RPS0VOKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0b2tlbi5udW1iZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlblR5cGUuUEVSQ0VOVEFHRV9UT0tFTikge1xyXG4gICAgICAgICAgICB2YXIgbWF4ID0gaSA9PT0gMyA/IDEgOiAyNTU7XHJcbiAgICAgICAgICAgIHJldHVybiBpID09PSAzID8gKHRva2VuLm51bWJlciAvIDEwMCkgKiBtYXggOiBNYXRoLnJvdW5kKCh0b2tlbi5udW1iZXIgLyAxMDApICogbWF4KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9O1xyXG4gICAgdmFyIHJnYiA9IGZ1bmN0aW9uIChhcmdzKSB7XHJcbiAgICAgICAgdmFyIHRva2VucyA9IGFyZ3MuZmlsdGVyKG5vbkZ1bmN0aW9uQXJnU2VwYXJhdG9yKTtcclxuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMykge1xyXG4gICAgICAgICAgICB2YXIgX2EgPSB0b2tlbnMubWFwKGdldFRva2VuQ29sb3JWYWx1ZSksIHIgPSBfYVswXSwgZyA9IF9hWzFdLCBiID0gX2FbMl07XHJcbiAgICAgICAgICAgIHJldHVybiBwYWNrKHIsIGcsIGIsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gNCkge1xyXG4gICAgICAgICAgICB2YXIgX2IgPSB0b2tlbnMubWFwKGdldFRva2VuQ29sb3JWYWx1ZSksIHIgPSBfYlswXSwgZyA9IF9iWzFdLCBiID0gX2JbMl0sIGEgPSBfYlszXTtcclxuICAgICAgICAgICAgcmV0dXJuIHBhY2sociwgZywgYiwgYSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfTtcclxuICAgIGZ1bmN0aW9uIGh1ZTJyZ2IodDEsIHQyLCBodWUpIHtcclxuICAgICAgICBpZiAoaHVlIDwgMCkge1xyXG4gICAgICAgICAgICBodWUgKz0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGh1ZSA+PSAxKSB7XHJcbiAgICAgICAgICAgIGh1ZSAtPSAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaHVlIDwgMSAvIDYpIHtcclxuICAgICAgICAgICAgcmV0dXJuICh0MiAtIHQxKSAqIGh1ZSAqIDYgKyB0MTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaHVlIDwgMSAvIDIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHQyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChodWUgPCAyIC8gMykge1xyXG4gICAgICAgICAgICByZXR1cm4gKHQyIC0gdDEpICogNiAqICgyIC8gMyAtIGh1ZSkgKyB0MTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0MTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICB2YXIgaHNsID0gZnVuY3Rpb24gKGFyZ3MpIHtcclxuICAgICAgICB2YXIgdG9rZW5zID0gYXJncy5maWx0ZXIobm9uRnVuY3Rpb25BcmdTZXBhcmF0b3IpO1xyXG4gICAgICAgIHZhciBodWUgPSB0b2tlbnNbMF0sIHNhdHVyYXRpb24gPSB0b2tlbnNbMV0sIGxpZ2h0bmVzcyA9IHRva2Vuc1syXSwgYWxwaGEgPSB0b2tlbnNbM107XHJcbiAgICAgICAgdmFyIGggPSAoaHVlLnR5cGUgPT09IFRva2VuVHlwZS5OVU1CRVJfVE9LRU4gPyBkZWcoaHVlLm51bWJlcikgOiBhbmdsZS5wYXJzZShodWUpKSAvIChNYXRoLlBJICogMik7XHJcbiAgICAgICAgdmFyIHMgPSBpc0xlbmd0aFBlcmNlbnRhZ2Uoc2F0dXJhdGlvbikgPyBzYXR1cmF0aW9uLm51bWJlciAvIDEwMCA6IDA7XHJcbiAgICAgICAgdmFyIGwgPSBpc0xlbmd0aFBlcmNlbnRhZ2UobGlnaHRuZXNzKSA/IGxpZ2h0bmVzcy5udW1iZXIgLyAxMDAgOiAwO1xyXG4gICAgICAgIHZhciBhID0gdHlwZW9mIGFscGhhICE9PSAndW5kZWZpbmVkJyAmJiBpc0xlbmd0aFBlcmNlbnRhZ2UoYWxwaGEpID8gZ2V0QWJzb2x1dGVWYWx1ZShhbHBoYSwgMSkgOiAxO1xyXG4gICAgICAgIGlmIChzID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwYWNrKGwgKiAyNTUsIGwgKiAyNTUsIGwgKiAyNTUsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgdDIgPSBsIDw9IDAuNSA/IGwgKiAocyArIDEpIDogbCArIHMgLSBsICogcztcclxuICAgICAgICB2YXIgdDEgPSBsICogMiAtIHQyO1xyXG4gICAgICAgIHZhciByID0gaHVlMnJnYih0MSwgdDIsIGggKyAxIC8gMyk7XHJcbiAgICAgICAgdmFyIGcgPSBodWUycmdiKHQxLCB0MiwgaCk7XHJcbiAgICAgICAgdmFyIGIgPSBodWUycmdiKHQxLCB0MiwgaCAtIDEgLyAzKTtcclxuICAgICAgICByZXR1cm4gcGFjayhyICogMjU1LCBnICogMjU1LCBiICogMjU1LCBhKTtcclxuICAgIH07XHJcbiAgICB2YXIgU1VQUE9SVEVEX0NPTE9SX0ZVTkNUSU9OUyA9IHtcclxuICAgICAgICBoc2w6IGhzbCxcclxuICAgICAgICBoc2xhOiBoc2wsXHJcbiAgICAgICAgcmdiOiByZ2IsXHJcbiAgICAgICAgcmdiYTogcmdiXHJcbiAgICB9O1xyXG4gICAgdmFyIENPTE9SUyA9IHtcclxuICAgICAgICBBTElDRUJMVUU6IDB4ZjBmOGZmZmYsXHJcbiAgICAgICAgQU5USVFVRVdISVRFOiAweGZhZWJkN2ZmLFxyXG4gICAgICAgIEFRVUE6IDB4MDBmZmZmZmYsXHJcbiAgICAgICAgQVFVQU1BUklORTogMHg3ZmZmZDRmZixcclxuICAgICAgICBBWlVSRTogMHhmMGZmZmZmZixcclxuICAgICAgICBCRUlHRTogMHhmNWY1ZGNmZixcclxuICAgICAgICBCSVNRVUU6IDB4ZmZlNGM0ZmYsXHJcbiAgICAgICAgQkxBQ0s6IDB4MDAwMDAwZmYsXHJcbiAgICAgICAgQkxBTkNIRURBTE1PTkQ6IDB4ZmZlYmNkZmYsXHJcbiAgICAgICAgQkxVRTogMHgwMDAwZmZmZixcclxuICAgICAgICBCTFVFVklPTEVUOiAweDhhMmJlMmZmLFxyXG4gICAgICAgIEJST1dOOiAweGE1MmEyYWZmLFxyXG4gICAgICAgIEJVUkxZV09PRDogMHhkZWI4ODdmZixcclxuICAgICAgICBDQURFVEJMVUU6IDB4NWY5ZWEwZmYsXHJcbiAgICAgICAgQ0hBUlRSRVVTRTogMHg3ZmZmMDBmZixcclxuICAgICAgICBDSE9DT0xBVEU6IDB4ZDI2OTFlZmYsXHJcbiAgICAgICAgQ09SQUw6IDB4ZmY3ZjUwZmYsXHJcbiAgICAgICAgQ09STkZMT1dFUkJMVUU6IDB4NjQ5NWVkZmYsXHJcbiAgICAgICAgQ09STlNJTEs6IDB4ZmZmOGRjZmYsXHJcbiAgICAgICAgQ1JJTVNPTjogMHhkYzE0M2NmZixcclxuICAgICAgICBDWUFOOiAweDAwZmZmZmZmLFxyXG4gICAgICAgIERBUktCTFVFOiAweDAwMDA4YmZmLFxyXG4gICAgICAgIERBUktDWUFOOiAweDAwOGI4YmZmLFxyXG4gICAgICAgIERBUktHT0xERU5ST0Q6IDB4Yjg4NmJiZmYsXHJcbiAgICAgICAgREFSS0dSQVk6IDB4YTlhOWE5ZmYsXHJcbiAgICAgICAgREFSS0dSRUVOOiAweDAwNjQwMGZmLFxyXG4gICAgICAgIERBUktHUkVZOiAweGE5YTlhOWZmLFxyXG4gICAgICAgIERBUktLSEFLSTogMHhiZGI3NmJmZixcclxuICAgICAgICBEQVJLTUFHRU5UQTogMHg4YjAwOGJmZixcclxuICAgICAgICBEQVJLT0xJVkVHUkVFTjogMHg1NTZiMmZmZixcclxuICAgICAgICBEQVJLT1JBTkdFOiAweGZmOGMwMGZmLFxyXG4gICAgICAgIERBUktPUkNISUQ6IDB4OTkzMmNjZmYsXHJcbiAgICAgICAgREFSS1JFRDogMHg4YjAwMDBmZixcclxuICAgICAgICBEQVJLU0FMTU9OOiAweGU5OTY3YWZmLFxyXG4gICAgICAgIERBUktTRUFHUkVFTjogMHg4ZmJjOGZmZixcclxuICAgICAgICBEQVJLU0xBVEVCTFVFOiAweDQ4M2Q4YmZmLFxyXG4gICAgICAgIERBUktTTEFURUdSQVk6IDB4MmY0ZjRmZmYsXHJcbiAgICAgICAgREFSS1NMQVRFR1JFWTogMHgyZjRmNGZmZixcclxuICAgICAgICBEQVJLVFVSUVVPSVNFOiAweDAwY2VkMWZmLFxyXG4gICAgICAgIERBUktWSU9MRVQ6IDB4OTQwMGQzZmYsXHJcbiAgICAgICAgREVFUFBJTks6IDB4ZmYxNDkzZmYsXHJcbiAgICAgICAgREVFUFNLWUJMVUU6IDB4MDBiZmZmZmYsXHJcbiAgICAgICAgRElNR1JBWTogMHg2OTY5NjlmZixcclxuICAgICAgICBESU1HUkVZOiAweDY5Njk2OWZmLFxyXG4gICAgICAgIERPREdFUkJMVUU6IDB4MWU5MGZmZmYsXHJcbiAgICAgICAgRklSRUJSSUNLOiAweGIyMjIyMmZmLFxyXG4gICAgICAgIEZMT1JBTFdISVRFOiAweGZmZmFmMGZmLFxyXG4gICAgICAgIEZPUkVTVEdSRUVOOiAweDIyOGIyMmZmLFxyXG4gICAgICAgIEZVQ0hTSUE6IDB4ZmYwMGZmZmYsXHJcbiAgICAgICAgR0FJTlNCT1JPOiAweGRjZGNkY2ZmLFxyXG4gICAgICAgIEdIT1NUV0hJVEU6IDB4ZjhmOGZmZmYsXHJcbiAgICAgICAgR09MRDogMHhmZmQ3MDBmZixcclxuICAgICAgICBHT0xERU5ST0Q6IDB4ZGFhNTIwZmYsXHJcbiAgICAgICAgR1JBWTogMHg4MDgwODBmZixcclxuICAgICAgICBHUkVFTjogMHgwMDgwMDBmZixcclxuICAgICAgICBHUkVFTllFTExPVzogMHhhZGZmMmZmZixcclxuICAgICAgICBHUkVZOiAweDgwODA4MGZmLFxyXG4gICAgICAgIEhPTkVZREVXOiAweGYwZmZmMGZmLFxyXG4gICAgICAgIEhPVFBJTks6IDB4ZmY2OWI0ZmYsXHJcbiAgICAgICAgSU5ESUFOUkVEOiAweGNkNWM1Y2ZmLFxyXG4gICAgICAgIElORElHTzogMHg0YjAwODJmZixcclxuICAgICAgICBJVk9SWTogMHhmZmZmZjBmZixcclxuICAgICAgICBLSEFLSTogMHhmMGU2OGNmZixcclxuICAgICAgICBMQVZFTkRFUjogMHhlNmU2ZmFmZixcclxuICAgICAgICBMQVZFTkRFUkJMVVNIOiAweGZmZjBmNWZmLFxyXG4gICAgICAgIExBV05HUkVFTjogMHg3Y2ZjMDBmZixcclxuICAgICAgICBMRU1PTkNISUZGT046IDB4ZmZmYWNkZmYsXHJcbiAgICAgICAgTElHSFRCTFVFOiAweGFkZDhlNmZmLFxyXG4gICAgICAgIExJR0hUQ09SQUw6IDB4ZjA4MDgwZmYsXHJcbiAgICAgICAgTElHSFRDWUFOOiAweGUwZmZmZmZmLFxyXG4gICAgICAgIExJR0hUR09MREVOUk9EWUVMTE9XOiAweGZhZmFkMmZmLFxyXG4gICAgICAgIExJR0hUR1JBWTogMHhkM2QzZDNmZixcclxuICAgICAgICBMSUdIVEdSRUVOOiAweDkwZWU5MGZmLFxyXG4gICAgICAgIExJR0hUR1JFWTogMHhkM2QzZDNmZixcclxuICAgICAgICBMSUdIVFBJTks6IDB4ZmZiNmMxZmYsXHJcbiAgICAgICAgTElHSFRTQUxNT046IDB4ZmZhMDdhZmYsXHJcbiAgICAgICAgTElHSFRTRUFHUkVFTjogMHgyMGIyYWFmZixcclxuICAgICAgICBMSUdIVFNLWUJMVUU6IDB4ODdjZWZhZmYsXHJcbiAgICAgICAgTElHSFRTTEFURUdSQVk6IDB4Nzc4ODk5ZmYsXHJcbiAgICAgICAgTElHSFRTTEFURUdSRVk6IDB4Nzc4ODk5ZmYsXHJcbiAgICAgICAgTElHSFRTVEVFTEJMVUU6IDB4YjBjNGRlZmYsXHJcbiAgICAgICAgTElHSFRZRUxMT1c6IDB4ZmZmZmUwZmYsXHJcbiAgICAgICAgTElNRTogMHgwMGZmMDBmZixcclxuICAgICAgICBMSU1FR1JFRU46IDB4MzJjZDMyZmYsXHJcbiAgICAgICAgTElORU46IDB4ZmFmMGU2ZmYsXHJcbiAgICAgICAgTUFHRU5UQTogMHhmZjAwZmZmZixcclxuICAgICAgICBNQVJPT046IDB4ODAwMDAwZmYsXHJcbiAgICAgICAgTUVESVVNQVFVQU1BUklORTogMHg2NmNkYWFmZixcclxuICAgICAgICBNRURJVU1CTFVFOiAweDAwMDBjZGZmLFxyXG4gICAgICAgIE1FRElVTU9SQ0hJRDogMHhiYTU1ZDNmZixcclxuICAgICAgICBNRURJVU1QVVJQTEU6IDB4OTM3MGRiZmYsXHJcbiAgICAgICAgTUVESVVNU0VBR1JFRU46IDB4M2NiMzcxZmYsXHJcbiAgICAgICAgTUVESVVNU0xBVEVCTFVFOiAweDdiNjhlZWZmLFxyXG4gICAgICAgIE1FRElVTVNQUklOR0dSRUVOOiAweDAwZmE5YWZmLFxyXG4gICAgICAgIE1FRElVTVRVUlFVT0lTRTogMHg0OGQxY2NmZixcclxuICAgICAgICBNRURJVU1WSU9MRVRSRUQ6IDB4YzcxNTg1ZmYsXHJcbiAgICAgICAgTUlETklHSFRCTFVFOiAweDE5MTk3MGZmLFxyXG4gICAgICAgIE1JTlRDUkVBTTogMHhmNWZmZmFmZixcclxuICAgICAgICBNSVNUWVJPU0U6IDB4ZmZlNGUxZmYsXHJcbiAgICAgICAgTU9DQ0FTSU46IDB4ZmZlNGI1ZmYsXHJcbiAgICAgICAgTkFWQUpPV0hJVEU6IDB4ZmZkZWFkZmYsXHJcbiAgICAgICAgTkFWWTogMHgwMDAwODBmZixcclxuICAgICAgICBPTERMQUNFOiAweGZkZjVlNmZmLFxyXG4gICAgICAgIE9MSVZFOiAweDgwODAwMGZmLFxyXG4gICAgICAgIE9MSVZFRFJBQjogMHg2YjhlMjNmZixcclxuICAgICAgICBPUkFOR0U6IDB4ZmZhNTAwZmYsXHJcbiAgICAgICAgT1JBTkdFUkVEOiAweGZmNDUwMGZmLFxyXG4gICAgICAgIE9SQ0hJRDogMHhkYTcwZDZmZixcclxuICAgICAgICBQQUxFR09MREVOUk9EOiAweGVlZThhYWZmLFxyXG4gICAgICAgIFBBTEVHUkVFTjogMHg5OGZiOThmZixcclxuICAgICAgICBQQUxFVFVSUVVPSVNFOiAweGFmZWVlZWZmLFxyXG4gICAgICAgIFBBTEVWSU9MRVRSRUQ6IDB4ZGI3MDkzZmYsXHJcbiAgICAgICAgUEFQQVlBV0hJUDogMHhmZmVmZDVmZixcclxuICAgICAgICBQRUFDSFBVRkY6IDB4ZmZkYWI5ZmYsXHJcbiAgICAgICAgUEVSVTogMHhjZDg1M2ZmZixcclxuICAgICAgICBQSU5LOiAweGZmYzBjYmZmLFxyXG4gICAgICAgIFBMVU06IDB4ZGRhMGRkZmYsXHJcbiAgICAgICAgUE9XREVSQkxVRTogMHhiMGUwZTZmZixcclxuICAgICAgICBQVVJQTEU6IDB4ODAwMDgwZmYsXHJcbiAgICAgICAgUkVCRUNDQVBVUlBMRTogMHg2NjMzOTlmZixcclxuICAgICAgICBSRUQ6IDB4ZmYwMDAwZmYsXHJcbiAgICAgICAgUk9TWUJST1dOOiAweGJjOGY4ZmZmLFxyXG4gICAgICAgIFJPWUFMQkxVRTogMHg0MTY5ZTFmZixcclxuICAgICAgICBTQURETEVCUk9XTjogMHg4YjQ1MTNmZixcclxuICAgICAgICBTQUxNT046IDB4ZmE4MDcyZmYsXHJcbiAgICAgICAgU0FORFlCUk9XTjogMHhmNGE0NjBmZixcclxuICAgICAgICBTRUFHUkVFTjogMHgyZThiNTdmZixcclxuICAgICAgICBTRUFTSEVMTDogMHhmZmY1ZWVmZixcclxuICAgICAgICBTSUVOTkE6IDB4YTA1MjJkZmYsXHJcbiAgICAgICAgU0lMVkVSOiAweGMwYzBjMGZmLFxyXG4gICAgICAgIFNLWUJMVUU6IDB4ODdjZWViZmYsXHJcbiAgICAgICAgU0xBVEVCTFVFOiAweDZhNWFjZGZmLFxyXG4gICAgICAgIFNMQVRFR1JBWTogMHg3MDgwOTBmZixcclxuICAgICAgICBTTEFURUdSRVk6IDB4NzA4MDkwZmYsXHJcbiAgICAgICAgU05PVzogMHhmZmZhZmFmZixcclxuICAgICAgICBTUFJJTkdHUkVFTjogMHgwMGZmN2ZmZixcclxuICAgICAgICBTVEVFTEJMVUU6IDB4NDY4MmI0ZmYsXHJcbiAgICAgICAgVEFOOiAweGQyYjQ4Y2ZmLFxyXG4gICAgICAgIFRFQUw6IDB4MDA4MDgwZmYsXHJcbiAgICAgICAgVEhJU1RMRTogMHhkOGJmZDhmZixcclxuICAgICAgICBUT01BVE86IDB4ZmY2MzQ3ZmYsXHJcbiAgICAgICAgVFJBTlNQQVJFTlQ6IDB4MDAwMDAwMDAsXHJcbiAgICAgICAgVFVSUVVPSVNFOiAweDQwZTBkMGZmLFxyXG4gICAgICAgIFZJT0xFVDogMHhlZTgyZWVmZixcclxuICAgICAgICBXSEVBVDogMHhmNWRlYjNmZixcclxuICAgICAgICBXSElURTogMHhmZmZmZmZmZixcclxuICAgICAgICBXSElURVNNT0tFOiAweGY1ZjVmNWZmLFxyXG4gICAgICAgIFlFTExPVzogMHhmZmZmMDBmZixcclxuICAgICAgICBZRUxMT1dHUkVFTjogMHg5YWNkMzJmZlxyXG4gICAgfTtcblxuICAgIHZhciBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZTtcclxuICAgIChmdW5jdGlvbiAoUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUpIHtcclxuICAgICAgICBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZVtQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZVtcIlZBTFVFXCJdID0gMF0gPSBcIlZBTFVFXCI7XHJcbiAgICAgICAgUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGVbUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGVbXCJMSVNUXCJdID0gMV0gPSBcIkxJU1RcIjtcclxuICAgICAgICBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZVtQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZVtcIklERU5UX1ZBTFVFXCJdID0gMl0gPSBcIklERU5UX1ZBTFVFXCI7XHJcbiAgICAgICAgUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGVbUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGVbXCJUWVBFX1ZBTFVFXCJdID0gM10gPSBcIlRZUEVfVkFMVUVcIjtcclxuICAgICAgICBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZVtQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZVtcIlRPS0VOX1ZBTFVFXCJdID0gNF0gPSBcIlRPS0VOX1ZBTFVFXCI7XHJcbiAgICB9KShQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZSB8fCAoUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUgPSB7fSkpO1xuXG4gICAgdmFyIEJBQ0tHUk9VTkRfQ0xJUDtcclxuICAgIChmdW5jdGlvbiAoQkFDS0dST1VORF9DTElQKSB7XHJcbiAgICAgICAgQkFDS0dST1VORF9DTElQW0JBQ0tHUk9VTkRfQ0xJUFtcIkJPUkRFUl9CT1hcIl0gPSAwXSA9IFwiQk9SREVSX0JPWFwiO1xyXG4gICAgICAgIEJBQ0tHUk9VTkRfQ0xJUFtCQUNLR1JPVU5EX0NMSVBbXCJQQURESU5HX0JPWFwiXSA9IDFdID0gXCJQQURESU5HX0JPWFwiO1xyXG4gICAgICAgIEJBQ0tHUk9VTkRfQ0xJUFtCQUNLR1JPVU5EX0NMSVBbXCJDT05URU5UX0JPWFwiXSA9IDJdID0gXCJDT05URU5UX0JPWFwiO1xyXG4gICAgfSkoQkFDS0dST1VORF9DTElQIHx8IChCQUNLR1JPVU5EX0NMSVAgPSB7fSkpO1xyXG4gICAgdmFyIGJhY2tncm91bmRDbGlwID0ge1xyXG4gICAgICAgIG5hbWU6ICdiYWNrZ3JvdW5kLWNsaXAnLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ2JvcmRlci1ib3gnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuTElTVCxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHRva2Vucykge1xyXG4gICAgICAgICAgICByZXR1cm4gdG9rZW5zLm1hcChmdW5jdGlvbiAodG9rZW4pIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0lkZW50VG9rZW4odG9rZW4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwYWRkaW5nLWJveCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQkFDS0dST1VORF9DTElQLlBBRERJTkdfQk9YO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjb250ZW50LWJveCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQkFDS0dST1VORF9DTElQLkNPTlRFTlRfQk9YO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBCQUNLR1JPVU5EX0NMSVAuQk9SREVSX0JPWDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBiYWNrZ3JvdW5kQ29sb3IgPSB7XHJcbiAgICAgICAgbmFtZTogXCJiYWNrZ3JvdW5kLWNvbG9yXCIsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuVFlQRV9WQUxVRSxcclxuICAgICAgICBmb3JtYXQ6ICdjb2xvcidcclxuICAgIH07XG5cbiAgICB2YXIgcGFyc2VDb2xvclN0b3AgPSBmdW5jdGlvbiAoYXJncykge1xyXG4gICAgICAgIHZhciBjb2xvciQxID0gY29sb3IucGFyc2UoYXJnc1swXSk7XHJcbiAgICAgICAgdmFyIHN0b3AgPSBhcmdzWzFdO1xyXG4gICAgICAgIHJldHVybiBzdG9wICYmIGlzTGVuZ3RoUGVyY2VudGFnZShzdG9wKSA/IHsgY29sb3I6IGNvbG9yJDEsIHN0b3A6IHN0b3AgfSA6IHsgY29sb3I6IGNvbG9yJDEsIHN0b3A6IG51bGwgfTtcclxuICAgIH07XHJcbiAgICB2YXIgcHJvY2Vzc0NvbG9yU3RvcHMgPSBmdW5jdGlvbiAoc3RvcHMsIGxpbmVMZW5ndGgpIHtcclxuICAgICAgICB2YXIgZmlyc3QgPSBzdG9wc1swXTtcclxuICAgICAgICB2YXIgbGFzdCA9IHN0b3BzW3N0b3BzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIGlmIChmaXJzdC5zdG9wID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGZpcnN0LnN0b3AgPSBaRVJPX0xFTkdUSDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhc3Quc3RvcCA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsYXN0LnN0b3AgPSBIVU5EUkVEX1BFUkNFTlQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBwcm9jZXNzU3RvcHMgPSBbXTtcclxuICAgICAgICB2YXIgcHJldmlvdXMgPSAwO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgdmFyIHN0b3BfMSA9IHN0b3BzW2ldLnN0b3A7XHJcbiAgICAgICAgICAgIGlmIChzdG9wXzEgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHZhciBhYnNvbHV0ZVZhbHVlID0gZ2V0QWJzb2x1dGVWYWx1ZShzdG9wXzEsIGxpbmVMZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGFic29sdXRlVmFsdWUgPiBwcmV2aW91cykge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NTdG9wcy5wdXNoKGFic29sdXRlVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc1N0b3BzLnB1c2gocHJldmlvdXMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcHJldmlvdXMgPSBhYnNvbHV0ZVZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcHJvY2Vzc1N0b3BzLnB1c2gobnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGdhcEJlZ2luID0gbnVsbDtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2Nlc3NTdG9wcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgc3RvcF8yID0gcHJvY2Vzc1N0b3BzW2ldO1xyXG4gICAgICAgICAgICBpZiAoc3RvcF8yID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZ2FwQmVnaW4gPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBnYXBCZWdpbiA9IGk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZ2FwQmVnaW4gIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHZhciBnYXBMZW5ndGggPSBpIC0gZ2FwQmVnaW47XHJcbiAgICAgICAgICAgICAgICB2YXIgYmVmb3JlR2FwID0gcHJvY2Vzc1N0b3BzW2dhcEJlZ2luIC0gMV07XHJcbiAgICAgICAgICAgICAgICB2YXIgZ2FwVmFsdWUgPSAoc3RvcF8yIC0gYmVmb3JlR2FwKSAvIChnYXBMZW5ndGggKyAxKTtcclxuICAgICAgICAgICAgICAgIGZvciAodmFyIGcgPSAxOyBnIDw9IGdhcExlbmd0aDsgZysrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc1N0b3BzW2dhcEJlZ2luICsgZyAtIDFdID0gZ2FwVmFsdWUgKiBnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZ2FwQmVnaW4gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzdG9wcy5tYXAoZnVuY3Rpb24gKF9hLCBpKSB7XHJcbiAgICAgICAgICAgIHZhciBjb2xvciA9IF9hLmNvbG9yO1xyXG4gICAgICAgICAgICByZXR1cm4geyBjb2xvcjogY29sb3IsIHN0b3A6IE1hdGgubWF4KE1hdGgubWluKDEsIHByb2Nlc3NTdG9wc1tpXSAvIGxpbmVMZW5ndGgpLCAwKSB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHZhciBnZXRBbmdsZUZyb21Db3JuZXIgPSBmdW5jdGlvbiAoY29ybmVyLCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgICAgICAgdmFyIGNlbnRlclggPSB3aWR0aCAvIDI7XHJcbiAgICAgICAgdmFyIGNlbnRlclkgPSBoZWlnaHQgLyAyO1xyXG4gICAgICAgIHZhciB4ID0gZ2V0QWJzb2x1dGVWYWx1ZShjb3JuZXJbMF0sIHdpZHRoKSAtIGNlbnRlclg7XHJcbiAgICAgICAgdmFyIHkgPSBjZW50ZXJZIC0gZ2V0QWJzb2x1dGVWYWx1ZShjb3JuZXJbMV0sIGhlaWdodCk7XHJcbiAgICAgICAgcmV0dXJuIChNYXRoLmF0YW4yKHksIHgpICsgTWF0aC5QSSAqIDIpICUgKE1hdGguUEkgKiAyKTtcclxuICAgIH07XHJcbiAgICB2YXIgY2FsY3VsYXRlR3JhZGllbnREaXJlY3Rpb24gPSBmdW5jdGlvbiAoYW5nbGUsIHdpZHRoLCBoZWlnaHQpIHtcclxuICAgICAgICB2YXIgcmFkaWFuID0gdHlwZW9mIGFuZ2xlID09PSAnbnVtYmVyJyA/IGFuZ2xlIDogZ2V0QW5nbGVGcm9tQ29ybmVyKGFuZ2xlLCB3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICB2YXIgbGluZUxlbmd0aCA9IE1hdGguYWJzKHdpZHRoICogTWF0aC5zaW4ocmFkaWFuKSkgKyBNYXRoLmFicyhoZWlnaHQgKiBNYXRoLmNvcyhyYWRpYW4pKTtcclxuICAgICAgICB2YXIgaGFsZldpZHRoID0gd2lkdGggLyAyO1xyXG4gICAgICAgIHZhciBoYWxmSGVpZ2h0ID0gaGVpZ2h0IC8gMjtcclxuICAgICAgICB2YXIgaGFsZkxpbmVMZW5ndGggPSBsaW5lTGVuZ3RoIC8gMjtcclxuICAgICAgICB2YXIgeURpZmYgPSBNYXRoLnNpbihyYWRpYW4gLSBNYXRoLlBJIC8gMikgKiBoYWxmTGluZUxlbmd0aDtcclxuICAgICAgICB2YXIgeERpZmYgPSBNYXRoLmNvcyhyYWRpYW4gLSBNYXRoLlBJIC8gMikgKiBoYWxmTGluZUxlbmd0aDtcclxuICAgICAgICByZXR1cm4gW2xpbmVMZW5ndGgsIGhhbGZXaWR0aCAtIHhEaWZmLCBoYWxmV2lkdGggKyB4RGlmZiwgaGFsZkhlaWdodCAtIHlEaWZmLCBoYWxmSGVpZ2h0ICsgeURpZmZdO1xyXG4gICAgfTtcclxuICAgIHZhciBkaXN0YW5jZSA9IGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBNYXRoLnNxcnQoYSAqIGEgKyBiICogYik7IH07XHJcbiAgICB2YXIgZmluZENvcm5lciA9IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0LCB4LCB5LCBjbG9zZXN0KSB7XHJcbiAgICAgICAgdmFyIGNvcm5lcnMgPSBbWzAsIDBdLCBbMCwgaGVpZ2h0XSwgW3dpZHRoLCAwXSwgW3dpZHRoLCBoZWlnaHRdXTtcclxuICAgICAgICByZXR1cm4gY29ybmVycy5yZWR1Y2UoZnVuY3Rpb24gKHN0YXQsIGNvcm5lcikge1xyXG4gICAgICAgICAgICB2YXIgY3ggPSBjb3JuZXJbMF0sIGN5ID0gY29ybmVyWzFdO1xyXG4gICAgICAgICAgICB2YXIgZCA9IGRpc3RhbmNlKHggLSBjeCwgeSAtIGN5KTtcclxuICAgICAgICAgICAgaWYgKGNsb3Nlc3QgPyBkIDwgc3RhdC5vcHRpbXVtRGlzdGFuY2UgOiBkID4gc3RhdC5vcHRpbXVtRGlzdGFuY2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW11bUNvcm5lcjogY29ybmVyLFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGltdW1EaXN0YW5jZTogZFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gc3RhdDtcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICAgIG9wdGltdW1EaXN0YW5jZTogY2xvc2VzdCA/IEluZmluaXR5IDogLUluZmluaXR5LFxyXG4gICAgICAgICAgICBvcHRpbXVtQ29ybmVyOiBudWxsXHJcbiAgICAgICAgfSkub3B0aW11bUNvcm5lcjtcclxuICAgIH07XHJcbiAgICB2YXIgY2FsY3VsYXRlUmFkaXVzID0gZnVuY3Rpb24gKGdyYWRpZW50LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7XHJcbiAgICAgICAgdmFyIHJ4ID0gMDtcclxuICAgICAgICB2YXIgcnkgPSAwO1xyXG4gICAgICAgIHN3aXRjaCAoZ3JhZGllbnQuc2l6ZSkge1xyXG4gICAgICAgICAgICBjYXNlIENTU1JhZGlhbEV4dGVudC5DTE9TRVNUX1NJREU6XHJcbiAgICAgICAgICAgICAgICAvLyBUaGUgZW5kaW5nIHNoYXBlIGlzIHNpemVkIHNvIHRoYXQgdGhhdCBpdCBleGFjdGx5IG1lZXRzIHRoZSBzaWRlIG9mIHRoZSBncmFkaWVudCBib3ggY2xvc2VzdCB0byB0aGUgZ3JhZGllbnTigJlzIGNlbnRlci5cclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzaGFwZSBpcyBhbiBlbGxpcHNlLCBpdCBleGFjdGx5IG1lZXRzIHRoZSBjbG9zZXN0IHNpZGUgaW4gZWFjaCBkaW1lbnNpb24uXHJcbiAgICAgICAgICAgICAgICBpZiAoZ3JhZGllbnQuc2hhcGUgPT09IENTU1JhZGlhbFNoYXBlLkNJUkNMRSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJ4ID0gcnkgPSBNYXRoLm1pbihNYXRoLmFicyh4KSwgTWF0aC5hYnMoeCAtIHdpZHRoKSwgTWF0aC5hYnMoeSksIE1hdGguYWJzKHkgLSBoZWlnaHQpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGdyYWRpZW50LnNoYXBlID09PSBDU1NSYWRpYWxTaGFwZS5FTExJUFNFKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcnggPSBNYXRoLm1pbihNYXRoLmFicyh4KSwgTWF0aC5hYnMoeCAtIHdpZHRoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcnkgPSBNYXRoLm1pbihNYXRoLmFicyh5KSwgTWF0aC5hYnMoeSAtIGhlaWdodCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgQ1NTUmFkaWFsRXh0ZW50LkNMT1NFU1RfQ09STkVSOlxyXG4gICAgICAgICAgICAgICAgLy8gVGhlIGVuZGluZyBzaGFwZSBpcyBzaXplZCBzbyB0aGF0IHRoYXQgaXQgcGFzc2VzIHRocm91Z2ggdGhlIGNvcm5lciBvZiB0aGUgZ3JhZGllbnQgYm94IGNsb3Nlc3QgdG8gdGhlIGdyYWRpZW504oCZcyBjZW50ZXIuXHJcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgc2hhcGUgaXMgYW4gZWxsaXBzZSwgdGhlIGVuZGluZyBzaGFwZSBpcyBnaXZlbiB0aGUgc2FtZSBhc3BlY3QtcmF0aW8gaXQgd291bGQgaGF2ZSBpZiBjbG9zZXN0LXNpZGUgd2VyZSBzcGVjaWZpZWQuXHJcbiAgICAgICAgICAgICAgICBpZiAoZ3JhZGllbnQuc2hhcGUgPT09IENTU1JhZGlhbFNoYXBlLkNJUkNMRSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJ4ID0gcnkgPSBNYXRoLm1pbihkaXN0YW5jZSh4LCB5KSwgZGlzdGFuY2UoeCwgeSAtIGhlaWdodCksIGRpc3RhbmNlKHggLSB3aWR0aCwgeSksIGRpc3RhbmNlKHggLSB3aWR0aCwgeSAtIGhlaWdodCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoZ3JhZGllbnQuc2hhcGUgPT09IENTU1JhZGlhbFNoYXBlLkVMTElQU0UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBDb21wdXRlIHRoZSByYXRpbyByeS9yeCAod2hpY2ggaXMgdG8gYmUgdGhlIHNhbWUgYXMgZm9yIFwiY2xvc2VzdC1zaWRlXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBNYXRoLm1pbihNYXRoLmFicyh5KSwgTWF0aC5hYnMoeSAtIGhlaWdodCkpIC8gTWF0aC5taW4oTWF0aC5hYnMoeCksIE1hdGguYWJzKHggLSB3aWR0aCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSA9IGZpbmRDb3JuZXIod2lkdGgsIGhlaWdodCwgeCwgeSwgdHJ1ZSksIGN4ID0gX2FbMF0sIGN5ID0gX2FbMV07XHJcbiAgICAgICAgICAgICAgICAgICAgcnggPSBkaXN0YW5jZShjeCAtIHgsIChjeSAtIHkpIC8gYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcnkgPSBjICogcng7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBDU1NSYWRpYWxFeHRlbnQuRkFSVEhFU1RfU0lERTpcclxuICAgICAgICAgICAgICAgIC8vIFNhbWUgYXMgY2xvc2VzdC1zaWRlLCBleGNlcHQgdGhlIGVuZGluZyBzaGFwZSBpcyBzaXplZCBiYXNlZCBvbiB0aGUgZmFydGhlc3Qgc2lkZShzKVxyXG4gICAgICAgICAgICAgICAgaWYgKGdyYWRpZW50LnNoYXBlID09PSBDU1NSYWRpYWxTaGFwZS5DSVJDTEUpIHtcclxuICAgICAgICAgICAgICAgICAgICByeCA9IHJ5ID0gTWF0aC5tYXgoTWF0aC5hYnMoeCksIE1hdGguYWJzKHggLSB3aWR0aCksIE1hdGguYWJzKHkpLCBNYXRoLmFicyh5IC0gaGVpZ2h0KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChncmFkaWVudC5zaGFwZSA9PT0gQ1NTUmFkaWFsU2hhcGUuRUxMSVBTRSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJ4ID0gTWF0aC5tYXgoTWF0aC5hYnMoeCksIE1hdGguYWJzKHggLSB3aWR0aCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJ5ID0gTWF0aC5tYXgoTWF0aC5hYnMoeSksIE1hdGguYWJzKHkgLSBoZWlnaHQpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIENTU1JhZGlhbEV4dGVudC5GQVJUSEVTVF9DT1JORVI6XHJcbiAgICAgICAgICAgICAgICAvLyBTYW1lIGFzIGNsb3Nlc3QtY29ybmVyLCBleGNlcHQgdGhlIGVuZGluZyBzaGFwZSBpcyBzaXplZCBiYXNlZCBvbiB0aGUgZmFydGhlc3QgY29ybmVyLlxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHNoYXBlIGlzIGFuIGVsbGlwc2UsIHRoZSBlbmRpbmcgc2hhcGUgaXMgZ2l2ZW4gdGhlIHNhbWUgYXNwZWN0IHJhdGlvIGl0IHdvdWxkIGhhdmUgaWYgZmFydGhlc3Qtc2lkZSB3ZXJlIHNwZWNpZmllZC5cclxuICAgICAgICAgICAgICAgIGlmIChncmFkaWVudC5zaGFwZSA9PT0gQ1NTUmFkaWFsU2hhcGUuQ0lSQ0xFKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcnggPSByeSA9IE1hdGgubWF4KGRpc3RhbmNlKHgsIHkpLCBkaXN0YW5jZSh4LCB5IC0gaGVpZ2h0KSwgZGlzdGFuY2UoeCAtIHdpZHRoLCB5KSwgZGlzdGFuY2UoeCAtIHdpZHRoLCB5IC0gaGVpZ2h0KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChncmFkaWVudC5zaGFwZSA9PT0gQ1NTUmFkaWFsU2hhcGUuRUxMSVBTRSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIENvbXB1dGUgdGhlIHJhdGlvIHJ5L3J4ICh3aGljaCBpcyB0byBiZSB0aGUgc2FtZSBhcyBmb3IgXCJmYXJ0aGVzdC1zaWRlXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBNYXRoLm1heChNYXRoLmFicyh5KSwgTWF0aC5hYnMoeSAtIGhlaWdodCkpIC8gTWF0aC5tYXgoTWF0aC5hYnMoeCksIE1hdGguYWJzKHggLSB3aWR0aCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBfYiA9IGZpbmRDb3JuZXIod2lkdGgsIGhlaWdodCwgeCwgeSwgZmFsc2UpLCBjeCA9IF9iWzBdLCBjeSA9IF9iWzFdO1xyXG4gICAgICAgICAgICAgICAgICAgIHJ4ID0gZGlzdGFuY2UoY3ggLSB4LCAoY3kgLSB5KSAvIGMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJ5ID0gYyAqIHJ4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGdyYWRpZW50LnNpemUpKSB7XHJcbiAgICAgICAgICAgIHJ4ID0gZ2V0QWJzb2x1dGVWYWx1ZShncmFkaWVudC5zaXplWzBdLCB3aWR0aCk7XHJcbiAgICAgICAgICAgIHJ5ID0gZ3JhZGllbnQuc2l6ZS5sZW5ndGggPT09IDIgPyBnZXRBYnNvbHV0ZVZhbHVlKGdyYWRpZW50LnNpemVbMV0sIGhlaWdodCkgOiByeDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFtyeCwgcnldO1xyXG4gICAgfTtcblxuICAgIHZhciBsaW5lYXJHcmFkaWVudCA9IGZ1bmN0aW9uICh0b2tlbnMpIHtcclxuICAgICAgICB2YXIgYW5nbGUkMSA9IGRlZygxODApO1xyXG4gICAgICAgIHZhciBzdG9wcyA9IFtdO1xyXG4gICAgICAgIHBhcnNlRnVuY3Rpb25BcmdzKHRva2VucykuZm9yRWFjaChmdW5jdGlvbiAoYXJnLCBpKSB7XHJcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZmlyc3RUb2tlbiA9IGFyZ1swXTtcclxuICAgICAgICAgICAgICAgIGlmIChmaXJzdFRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5JREVOVF9UT0tFTiAmJiBmaXJzdFRva2VuLnZhbHVlID09PSAndG8nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYW5nbGUkMSA9IHBhcnNlTmFtZWRTaWRlKGFyZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNBbmdsZShmaXJzdFRva2VuKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFuZ2xlJDEgPSBhbmdsZS5wYXJzZShmaXJzdFRva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGNvbG9yU3RvcCA9IHBhcnNlQ29sb3JTdG9wKGFyZyk7XHJcbiAgICAgICAgICAgIHN0b3BzLnB1c2goY29sb3JTdG9wKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4geyBhbmdsZTogYW5nbGUkMSwgc3RvcHM6IHN0b3BzLCB0eXBlOiBDU1NJbWFnZVR5cGUuTElORUFSX0dSQURJRU5UIH07XHJcbiAgICB9O1xuXG4gICAgdmFyIHByZWZpeExpbmVhckdyYWRpZW50ID0gZnVuY3Rpb24gKHRva2Vucykge1xyXG4gICAgICAgIHZhciBhbmdsZSQxID0gZGVnKDE4MCk7XHJcbiAgICAgICAgdmFyIHN0b3BzID0gW107XHJcbiAgICAgICAgcGFyc2VGdW5jdGlvbkFyZ3ModG9rZW5zKS5mb3JFYWNoKGZ1bmN0aW9uIChhcmcsIGkpIHtcclxuICAgICAgICAgICAgaWYgKGkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHZhciBmaXJzdFRva2VuID0gYXJnWzBdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0VG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLklERU5UX1RPS0VOICYmXHJcbiAgICAgICAgICAgICAgICAgICAgWyd0b3AnLCAnbGVmdCcsICdyaWdodCcsICdib3R0b20nXS5pbmRleE9mKGZpcnN0VG9rZW4udmFsdWUpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFuZ2xlJDEgPSBwYXJzZU5hbWVkU2lkZShhcmcpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzQW5nbGUoZmlyc3RUb2tlbikpIHtcclxuICAgICAgICAgICAgICAgICAgICBhbmdsZSQxID0gKGFuZ2xlLnBhcnNlKGZpcnN0VG9rZW4pICsgZGVnKDI3MCkpICUgZGVnKDM2MCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBjb2xvclN0b3AgPSBwYXJzZUNvbG9yU3RvcChhcmcpO1xyXG4gICAgICAgICAgICBzdG9wcy5wdXNoKGNvbG9yU3RvcCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYW5nbGU6IGFuZ2xlJDEsXHJcbiAgICAgICAgICAgIHN0b3BzOiBzdG9wcyxcclxuICAgICAgICAgICAgdHlwZTogQ1NTSW1hZ2VUeXBlLkxJTkVBUl9HUkFESUVOVFxyXG4gICAgICAgIH07XHJcbiAgICB9O1xuXG4gICAgdmFyIHRlc3RSYW5nZUJvdW5kcyA9IGZ1bmN0aW9uIChkb2N1bWVudCkge1xyXG4gICAgICAgIHZhciBURVNUX0hFSUdIVCA9IDEyMztcclxuICAgICAgICBpZiAoZG9jdW1lbnQuY3JlYXRlUmFuZ2UpIHtcclxuICAgICAgICAgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcclxuICAgICAgICAgICAgaWYgKHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHRlc3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYm91bmR0ZXN0Jyk7XHJcbiAgICAgICAgICAgICAgICB0ZXN0RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBURVNUX0hFSUdIVCArIFwicHhcIjtcclxuICAgICAgICAgICAgICAgIHRlc3RFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXN0RWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICByYW5nZS5zZWxlY3ROb2RlKHRlc3RFbGVtZW50KTtcclxuICAgICAgICAgICAgICAgIHZhciByYW5nZUJvdW5kcyA9IHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJhbmdlSGVpZ2h0ID0gTWF0aC5yb3VuZChyYW5nZUJvdW5kcy5oZWlnaHQpO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXN0RWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmFuZ2VIZWlnaHQgPT09IFRFU1RfSEVJR0hUKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfTtcclxuICAgIHZhciB0ZXN0Q09SUyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBuZXcgSW1hZ2UoKS5jcm9zc09yaWdpbiAhPT0gJ3VuZGVmaW5lZCc7IH07XHJcbiAgICB2YXIgdGVzdFJlc3BvbnNlVHlwZSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHR5cGVvZiBuZXcgWE1MSHR0cFJlcXVlc3QoKS5yZXNwb25zZVR5cGUgPT09ICdzdHJpbmcnOyB9O1xyXG4gICAgdmFyIHRlc3RTVkcgPSBmdW5jdGlvbiAoZG9jdW1lbnQpIHtcclxuICAgICAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7XHJcbiAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgICBpZiAoIWN0eCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGltZy5zcmMgPSBcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PC9zdmc+XCI7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApO1xyXG4gICAgICAgICAgICBjYW52YXMudG9EYXRhVVJMKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzR3JlZW5QaXhlbCA9IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFbMF0gPT09IDAgJiYgZGF0YVsxXSA9PT0gMjU1ICYmIGRhdGFbMl0gPT09IDAgJiYgZGF0YVszXSA9PT0gMjU1O1xyXG4gICAgfTtcclxuICAgIHZhciB0ZXN0Rm9yZWlnbk9iamVjdCA9IGZ1bmN0aW9uIChkb2N1bWVudCkge1xyXG4gICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICAgICAgICB2YXIgc2l6ZSA9IDEwMDtcclxuICAgICAgICBjYW52YXMud2lkdGggPSBzaXplO1xyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBzaXplO1xyXG4gICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgICBpZiAoIWN0eCkge1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYigwLCAyNTUsIDApJztcclxuICAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgc2l6ZSwgc2l6ZSk7XHJcbiAgICAgICAgdmFyIGltZyA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICAgIHZhciBncmVlbkltYWdlU3JjID0gY2FudmFzLnRvRGF0YVVSTCgpO1xyXG4gICAgICAgIGltZy5zcmMgPSBncmVlbkltYWdlU3JjO1xyXG4gICAgICAgIHZhciBzdmcgPSBjcmVhdGVGb3JlaWduT2JqZWN0U1ZHKHNpemUsIHNpemUsIDAsIDAsIGltZyk7XHJcbiAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZWQnO1xyXG4gICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBzaXplLCBzaXplKTtcclxuICAgICAgICByZXR1cm4gbG9hZFNlcmlhbGl6ZWRTVkcoc3ZnKVxyXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoaW1nKSB7XHJcbiAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTtcclxuICAgICAgICAgICAgdmFyIGRhdGEgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIHNpemUsIHNpemUpLmRhdGE7XHJcbiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAncmVkJztcclxuICAgICAgICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHNpemUsIHNpemUpO1xyXG4gICAgICAgICAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgICAgICBub2RlLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IFwidXJsKFwiICsgZ3JlZW5JbWFnZVNyYyArIFwiKVwiO1xyXG4gICAgICAgICAgICBub2RlLnN0eWxlLmhlaWdodCA9IHNpemUgKyBcInB4XCI7XHJcbiAgICAgICAgICAgIC8vIEZpcmVmb3ggNTUgZG9lcyBub3QgcmVuZGVyIGlubGluZSA8aW1nIC8+IHRhZ3NcclxuICAgICAgICAgICAgcmV0dXJuIGlzR3JlZW5QaXhlbChkYXRhKVxyXG4gICAgICAgICAgICAgICAgPyBsb2FkU2VyaWFsaXplZFNWRyhjcmVhdGVGb3JlaWduT2JqZWN0U1ZHKHNpemUsIHNpemUsIDAsIDAsIG5vZGUpKVxyXG4gICAgICAgICAgICAgICAgOiBQcm9taXNlLnJlamVjdChmYWxzZSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKGltZykge1xyXG4gICAgICAgICAgICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCk7XHJcbiAgICAgICAgICAgIC8vIEVkZ2UgZG9lcyBub3QgcmVuZGVyIGJhY2tncm91bmQtaW1hZ2VzXHJcbiAgICAgICAgICAgIHJldHVybiBpc0dyZWVuUGl4ZWwoY3R4LmdldEltYWdlRGF0YSgwLCAwLCBzaXplLCBzaXplKS5kYXRhKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKCkgeyByZXR1cm4gZmFsc2U7IH0pO1xyXG4gICAgfTtcclxuICAgIHZhciBjcmVhdGVGb3JlaWduT2JqZWN0U1ZHID0gZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQsIHgsIHksIG5vZGUpIHtcclxuICAgICAgICB2YXIgeG1sbnMgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnO1xyXG4gICAgICAgIHZhciBzdmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoeG1sbnMsICdzdmcnKTtcclxuICAgICAgICB2YXIgZm9yZWlnbk9iamVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh4bWxucywgJ2ZvcmVpZ25PYmplY3QnKTtcclxuICAgICAgICBzdmcuc2V0QXR0cmlidXRlTlMobnVsbCwgJ3dpZHRoJywgd2lkdGgudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgc3ZnLnNldEF0dHJpYnV0ZU5TKG51bGwsICdoZWlnaHQnLCBoZWlnaHQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgZm9yZWlnbk9iamVjdC5zZXRBdHRyaWJ1dGVOUyhudWxsLCAnd2lkdGgnLCAnMTAwJScpO1xyXG4gICAgICAgIGZvcmVpZ25PYmplY3Quc2V0QXR0cmlidXRlTlMobnVsbCwgJ2hlaWdodCcsICcxMDAlJyk7XHJcbiAgICAgICAgZm9yZWlnbk9iamVjdC5zZXRBdHRyaWJ1dGVOUyhudWxsLCAneCcsIHgudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgZm9yZWlnbk9iamVjdC5zZXRBdHRyaWJ1dGVOUyhudWxsLCAneScsIHkudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgZm9yZWlnbk9iamVjdC5zZXRBdHRyaWJ1dGVOUyhudWxsLCAnZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCcsICd0cnVlJyk7XHJcbiAgICAgICAgc3ZnLmFwcGVuZENoaWxkKGZvcmVpZ25PYmplY3QpO1xyXG4gICAgICAgIGZvcmVpZ25PYmplY3QuYXBwZW5kQ2hpbGQobm9kZSk7XHJcbiAgICAgICAgcmV0dXJuIHN2ZztcclxuICAgIH07XHJcbiAgICB2YXIgbG9hZFNlcmlhbGl6ZWRTVkcgPSBmdW5jdGlvbiAoc3ZnKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgdmFyIGltZyA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVzb2x2ZShpbWcpOyB9O1xyXG4gICAgICAgICAgICBpbWcub25lcnJvciA9IHJlamVjdDtcclxuICAgICAgICAgICAgaW1nLnNyYyA9IFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsXCIgKyBlbmNvZGVVUklDb21wb25lbnQobmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhzdmcpKTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICB2YXIgRkVBVFVSRVMgPSB7XHJcbiAgICAgICAgZ2V0IFNVUFBPUlRfUkFOR0VfQk9VTkRTKCkge1xyXG4gICAgICAgICAgICB2YXIgdmFsdWUgPSB0ZXN0UmFuZ2VCb3VuZHMoZG9jdW1lbnQpO1xyXG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRkVBVFVSRVMsICdTVVBQT1JUX1JBTkdFX0JPVU5EUycsIHsgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXQgU1VQUE9SVF9TVkdfRFJBV0lORygpIHtcclxuICAgICAgICAgICAgdmFyIHZhbHVlID0gdGVzdFNWRyhkb2N1bWVudCk7XHJcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGRUFUVVJFUywgJ1NVUFBPUlRfU1ZHX0RSQVdJTkcnLCB7IHZhbHVlOiB2YWx1ZSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZ2V0IFNVUFBPUlRfRk9SRUlHTk9CSkVDVF9EUkFXSU5HKCkge1xyXG4gICAgICAgICAgICB2YXIgdmFsdWUgPSB0eXBlb2YgQXJyYXkuZnJvbSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygd2luZG93LmZldGNoID09PSAnZnVuY3Rpb24nXHJcbiAgICAgICAgICAgICAgICA/IHRlc3RGb3JlaWduT2JqZWN0KGRvY3VtZW50KVxyXG4gICAgICAgICAgICAgICAgOiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRkVBVFVSRVMsICdTVVBQT1JUX0ZPUkVJR05PQkpFQ1RfRFJBV0lORycsIHsgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXQgU1VQUE9SVF9DT1JTX0lNQUdFUygpIHtcclxuICAgICAgICAgICAgdmFyIHZhbHVlID0gdGVzdENPUlMoKTtcclxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZFQVRVUkVTLCAnU1VQUE9SVF9DT1JTX0lNQUdFUycsIHsgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXQgU1VQUE9SVF9SRVNQT05TRV9UWVBFKCkge1xyXG4gICAgICAgICAgICB2YXIgdmFsdWUgPSB0ZXN0UmVzcG9uc2VUeXBlKCk7XHJcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGRUFUVVJFUywgJ1NVUFBPUlRfUkVTUE9OU0VfVFlQRScsIHsgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBnZXQgU1VQUE9SVF9DT1JTX1hIUigpIHtcclxuICAgICAgICAgICAgdmFyIHZhbHVlID0gJ3dpdGhDcmVkZW50aWFscycgaW4gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGRUFUVVJFUywgJ1NVUFBPUlRfQ09SU19YSFInLCB7IHZhbHVlOiB2YWx1ZSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH07XG5cbiAgICB2YXIgTG9nZ2VyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIExvZ2dlcihfYSkge1xyXG4gICAgICAgICAgICB2YXIgaWQgPSBfYS5pZCwgZW5hYmxlZCA9IF9hLmVuYWJsZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuaWQgPSBpZDtcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gZW5hYmxlZDtcclxuICAgICAgICAgICAgdGhpcy5zdGFydCA9IERhdGUubm93KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgTG9nZ2VyLnByb3RvdHlwZS5kZWJ1ZyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5lbmFibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25zb2xlICYmIHR5cGVvZiBjb25zb2xlLmRlYnVnID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnLmFwcGx5KGNvbnNvbGUsIFt0aGlzLmlkLCB0aGlzLmdldFRpbWUoKSArIFwibXNcIl0uY29uY2F0KGFyZ3MpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5mby5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgTG9nZ2VyLnByb3RvdHlwZS5nZXRUaW1lID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gRGF0ZS5ub3coKSAtIHRoaXMuc3RhcnQ7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBMb2dnZXIuY3JlYXRlID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgTG9nZ2VyLmluc3RhbmNlc1tvcHRpb25zLmlkXSA9IG5ldyBMb2dnZXIob3B0aW9ucyk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBMb2dnZXIuZGVzdHJveSA9IGZ1bmN0aW9uIChpZCkge1xyXG4gICAgICAgICAgICBkZWxldGUgTG9nZ2VyLmluc3RhbmNlc1tpZF07XHJcbiAgICAgICAgfTtcclxuICAgICAgICBMb2dnZXIuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbiAoaWQpIHtcclxuICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gTG9nZ2VyLmluc3RhbmNlc1tpZF07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5zdGFuY2UgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBsb2dnZXIgaW5zdGFuY2UgZm91bmQgd2l0aCBpZCBcIiArIGlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIExvZ2dlci5wcm90b3R5cGUuaW5mbyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5lbmFibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25zb2xlICYmIHR5cGVvZiBjb25zb2xlLmluZm8gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5mby5hcHBseShjb25zb2xlLCBbdGhpcy5pZCwgdGhpcy5nZXRUaW1lKCkgKyBcIm1zXCJdLmNvbmNhdChhcmdzKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgTG9nZ2VyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5lbmFibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5jb25zb2xlICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yLmFwcGx5KGNvbnNvbGUsIFt0aGlzLmlkLCB0aGlzLmdldFRpbWUoKSArIFwibXNcIl0uY29uY2F0KGFyZ3MpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5mby5hcHBseSh0aGlzLCBhcmdzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgTG9nZ2VyLmluc3RhbmNlcyA9IHt9O1xyXG4gICAgICAgIHJldHVybiBMb2dnZXI7XHJcbiAgICB9KCkpO1xuXG4gICAgdmFyIENhY2hlU3RvcmFnZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBDYWNoZVN0b3JhZ2UoKSB7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIENhY2hlU3RvcmFnZS5jcmVhdGUgPSBmdW5jdGlvbiAobmFtZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICByZXR1cm4gKENhY2hlU3RvcmFnZS5fY2FjaGVzW25hbWVdID0gbmV3IENhY2hlKG5hbWUsIG9wdGlvbnMpKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIENhY2hlU3RvcmFnZS5kZXN0cm95ID0gZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgICAgICAgICAgZGVsZXRlIENhY2hlU3RvcmFnZS5fY2FjaGVzW25hbWVdO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQ2FjaGVTdG9yYWdlLm9wZW4gPSBmdW5jdGlvbiAobmFtZSkge1xyXG4gICAgICAgICAgICB2YXIgY2FjaGUgPSBDYWNoZVN0b3JhZ2UuX2NhY2hlc1tuYW1lXTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYWNoZSB3aXRoIGtleSBcXFwiXCIgKyBuYW1lICsgXCJcXFwiIG5vdCBmb3VuZFwiKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIENhY2hlU3RvcmFnZS5nZXRPcmlnaW4gPSBmdW5jdGlvbiAodXJsKSB7XHJcbiAgICAgICAgICAgIHZhciBsaW5rID0gQ2FjaGVTdG9yYWdlLl9saW5rO1xyXG4gICAgICAgICAgICBpZiAoIWxpbmspIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnYWJvdXQ6YmxhbmsnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IHVybDtcclxuICAgICAgICAgICAgbGluay5ocmVmID0gbGluay5ocmVmOyAvLyBJRTksIExPTCEgLSBodHRwOi8vanNmaWRkbGUubmV0L25pa2xhc3ZoLzJlNDhiL1xyXG4gICAgICAgICAgICByZXR1cm4gbGluay5wcm90b2NvbCArIGxpbmsuaG9zdG5hbWUgKyBsaW5rLnBvcnQ7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBDYWNoZVN0b3JhZ2UuaXNTYW1lT3JpZ2luID0gZnVuY3Rpb24gKHNyYykge1xyXG4gICAgICAgICAgICByZXR1cm4gQ2FjaGVTdG9yYWdlLmdldE9yaWdpbihzcmMpID09PSBDYWNoZVN0b3JhZ2UuX29yaWdpbjtcclxuICAgICAgICB9O1xyXG4gICAgICAgIENhY2hlU3RvcmFnZS5zZXRDb250ZXh0ID0gZnVuY3Rpb24gKHdpbmRvdykge1xyXG4gICAgICAgICAgICBDYWNoZVN0b3JhZ2UuX2xpbmsgPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgICBDYWNoZVN0b3JhZ2UuX29yaWdpbiA9IENhY2hlU3RvcmFnZS5nZXRPcmlnaW4od2luZG93LmxvY2F0aW9uLmhyZWYpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQ2FjaGVTdG9yYWdlLmdldEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgY3VycmVudCA9IENhY2hlU3RvcmFnZS5fY3VycmVudDtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGNhY2hlIGluc3RhbmNlIGF0dGFjaGVkXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQ2FjaGVTdG9yYWdlLmF0dGFjaEluc3RhbmNlID0gZnVuY3Rpb24gKGNhY2hlKSB7XHJcbiAgICAgICAgICAgIENhY2hlU3RvcmFnZS5fY3VycmVudCA9IGNhY2hlO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQ2FjaGVTdG9yYWdlLmRldGFjaEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBDYWNoZVN0b3JhZ2UuX2N1cnJlbnQgPSBudWxsO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQ2FjaGVTdG9yYWdlLl9jYWNoZXMgPSB7fTtcclxuICAgICAgICBDYWNoZVN0b3JhZ2UuX29yaWdpbiA9ICdhYm91dDpibGFuayc7XHJcbiAgICAgICAgQ2FjaGVTdG9yYWdlLl9jdXJyZW50ID0gbnVsbDtcclxuICAgICAgICByZXR1cm4gQ2FjaGVTdG9yYWdlO1xyXG4gICAgfSgpKTtcclxuICAgIHZhciBDYWNoZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBDYWNoZShpZCwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgICAgICAgICB0aGlzLl9jYWNoZSA9IHt9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBDYWNoZS5wcm90b3R5cGUuYWRkSW1hZ2UgPSBmdW5jdGlvbiAoc3JjKSB7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzKHNyYykpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGlzQmxvYkltYWdlKHNyYykgfHwgaXNSZW5kZXJhYmxlKHNyYykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlW3NyY10gPSB0aGlzLmxvYWRJbWFnZShzcmMpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBDYWNoZS5wcm90b3R5cGUubWF0Y2ggPSBmdW5jdGlvbiAoc3JjKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jYWNoZVtzcmNdO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQ2FjaGUucHJvdG90eXBlLmxvYWRJbWFnZSA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGlzU2FtZU9yaWdpbiwgdXNlQ09SUywgdXNlUHJveHksIHNyYztcclxuICAgICAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NhbWVPcmlnaW4gPSBDYWNoZVN0b3JhZ2UuaXNTYW1lT3JpZ2luKGtleSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VDT1JTID0gIWlzSW5saW5lSW1hZ2Uoa2V5KSAmJiB0aGlzLl9vcHRpb25zLnVzZUNPUlMgPT09IHRydWUgJiYgRkVBVFVSRVMuU1VQUE9SVF9DT1JTX0lNQUdFUyAmJiAhaXNTYW1lT3JpZ2luO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlUHJveHkgPSAhaXNJbmxpbmVJbWFnZShrZXkpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWlzU2FtZU9yaWdpbiAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiB0aGlzLl9vcHRpb25zLnByb3h5ID09PSAnc3RyaW5nJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZFQVRVUkVTLlNVUFBPUlRfQ09SU19YSFIgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhdXNlQ09SUztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNTYW1lT3JpZ2luICYmIHRoaXMuX29wdGlvbnMuYWxsb3dUYWludCA9PT0gZmFsc2UgJiYgIWlzSW5saW5lSW1hZ2Uoa2V5KSAmJiAhdXNlUHJveHkgJiYgIXVzZUNPUlMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMgPSBrZXk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZVByb3h5KSByZXR1cm4gWzMgLypicmVhayovLCAyXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHRoaXMucHJveHkoc3JjKV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYyA9IF9hLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hLmxhYmVsID0gMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nZ2VyLmdldEluc3RhbmNlKHRoaXMuaWQpLmRlYnVnKFwiQWRkZWQgaW1hZ2UgXCIgKyBrZXkuc3Vic3RyaW5nKDAsIDI1NikpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiByZXNvbHZlKGltZyk7IH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZy5vbmVycm9yID0gcmVqZWN0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lvcyBzYWZhcmkgMTAuMyB0YWludHMgY2FudmFzIHdpdGggZGF0YSB1cmxzIHVubGVzcyBjcm9zc09yaWdpbiBpcyBzZXQgdG8gYW5vbnltb3VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0lubGluZUJhc2U2NEltYWdlKHNyYykgfHwgdXNlQ09SUykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nLmNyb3NzT3JpZ2luID0gJ2Fub255bW91cyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nLnNyYyA9IHNyYztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGltZy5jb21wbGV0ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5saW5lIFhNTCBpbWFnZXMgbWF5IGZhaWwgdG8gcGFyc2UsIHRocm93aW5nIGFuIEVycm9yIGxhdGVyIG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlc29sdmUoaW1nKTsgfSwgNTAwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3RoaXMuX29wdGlvbnMuaW1hZ2VUaW1lb3V0ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiByZWplY3QoXCJUaW1lZCBvdXQgKFwiICsgX3RoaXMuX29wdGlvbnMuaW1hZ2VUaW1lb3V0ICsgXCJtcykgbG9hZGluZyBpbWFnZVwiKTsgfSwgX3RoaXMuX29wdGlvbnMuaW1hZ2VUaW1lb3V0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOiByZXR1cm4gWzIgLypyZXR1cm4qLywgX2Euc2VudCgpXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBDYWNoZS5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuX2NhY2hlW2tleV0gIT09ICd1bmRlZmluZWQnO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQ2FjaGUucHJvdG90eXBlLmtleXMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoT2JqZWN0LmtleXModGhpcy5fY2FjaGUpKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIENhY2hlLnByb3RvdHlwZS5wcm94eSA9IGZ1bmN0aW9uIChzcmMpIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAgICAgdmFyIHByb3h5ID0gdGhpcy5fb3B0aW9ucy5wcm94eTtcclxuICAgICAgICAgICAgaWYgKCFwcm94eSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBwcm94eSBkZWZpbmVkJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGtleSA9IHNyYy5zdWJzdHJpbmcoMCwgMjU2KTtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgICAgIHZhciByZXNwb25zZVR5cGUgPSBGRUFUVVJFUy5TVVBQT1JUX1JFU1BPTlNFX1RZUEUgPyAnYmxvYicgOiAndGV4dCc7XHJcbiAgICAgICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICAgICAgICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlVHlwZSA9PT0gJ3RleHQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHhoci5yZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVhZGVyXzEgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyXzEuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlc29sdmUocmVhZGVyXzEucmVzdWx0KTsgfSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyXzEuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbiAoZSkgeyByZXR1cm4gcmVqZWN0KGUpOyB9LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkZXJfMS5yZWFkQXNEYXRhVVJMKHhoci5yZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChcIkZhaWxlZCB0byBwcm94eSByZXNvdXJjZSBcIiArIGtleSArIFwiIHdpdGggc3RhdHVzIGNvZGUgXCIgKyB4aHIuc3RhdHVzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgeGhyLm9uZXJyb3IgPSByZWplY3Q7XHJcbiAgICAgICAgICAgICAgICB4aHIub3BlbignR0VUJywgcHJveHkgKyBcIj91cmw9XCIgKyBlbmNvZGVVUklDb21wb25lbnQoc3JjKSArIFwiJnJlc3BvbnNlVHlwZT1cIiArIHJlc3BvbnNlVHlwZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VUeXBlICE9PSAndGV4dCcgJiYgeGhyIGluc3RhbmNlb2YgWE1MSHR0cFJlcXVlc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gcmVzcG9uc2VUeXBlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKF90aGlzLl9vcHRpb25zLmltYWdlVGltZW91dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aW1lb3V0XzEgPSBfdGhpcy5fb3B0aW9ucy5pbWFnZVRpbWVvdXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgeGhyLnRpbWVvdXQgPSB0aW1lb3V0XzE7XHJcbiAgICAgICAgICAgICAgICAgICAgeGhyLm9udGltZW91dCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlamVjdChcIlRpbWVkIG91dCAoXCIgKyB0aW1lb3V0XzEgKyBcIm1zKSBwcm94eWluZyBcIiArIGtleSk7IH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB4aHIuc2VuZCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBDYWNoZTtcclxuICAgIH0oKSk7XHJcbiAgICB2YXIgSU5MSU5FX1NWRyA9IC9eZGF0YTppbWFnZVxcL3N2Z1xcK3htbC9pO1xyXG4gICAgdmFyIElOTElORV9CQVNFNjQgPSAvXmRhdGE6aW1hZ2VcXC8uKjtiYXNlNjQsL2k7XHJcbiAgICB2YXIgSU5MSU5FX0lNRyA9IC9eZGF0YTppbWFnZVxcLy4qL2k7XHJcbiAgICB2YXIgaXNSZW5kZXJhYmxlID0gZnVuY3Rpb24gKHNyYykgeyByZXR1cm4gRkVBVFVSRVMuU1VQUE9SVF9TVkdfRFJBV0lORyB8fCAhaXNTVkcoc3JjKTsgfTtcclxuICAgIHZhciBpc0lubGluZUltYWdlID0gZnVuY3Rpb24gKHNyYykgeyByZXR1cm4gSU5MSU5FX0lNRy50ZXN0KHNyYyk7IH07XHJcbiAgICB2YXIgaXNJbmxpbmVCYXNlNjRJbWFnZSA9IGZ1bmN0aW9uIChzcmMpIHsgcmV0dXJuIElOTElORV9CQVNFNjQudGVzdChzcmMpOyB9O1xyXG4gICAgdmFyIGlzQmxvYkltYWdlID0gZnVuY3Rpb24gKHNyYykgeyByZXR1cm4gc3JjLnN1YnN0cigwLCA0KSA9PT0gJ2Jsb2InOyB9O1xyXG4gICAgdmFyIGlzU1ZHID0gZnVuY3Rpb24gKHNyYykgeyByZXR1cm4gc3JjLnN1YnN0cigtMykudG9Mb3dlckNhc2UoKSA9PT0gJ3N2ZycgfHwgSU5MSU5FX1NWRy50ZXN0KHNyYyk7IH07XG5cbiAgICB2YXIgd2Via2l0R3JhZGllbnQgPSBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgdmFyIGFuZ2xlID0gZGVnKDE4MCk7XHJcbiAgICAgICAgdmFyIHN0b3BzID0gW107XHJcbiAgICAgICAgdmFyIHR5cGUgPSBDU1NJbWFnZVR5cGUuTElORUFSX0dSQURJRU5UO1xyXG4gICAgICAgIHZhciBzaGFwZSA9IENTU1JhZGlhbFNoYXBlLkNJUkNMRTtcclxuICAgICAgICB2YXIgc2l6ZSA9IENTU1JhZGlhbEV4dGVudC5GQVJUSEVTVF9DT1JORVI7XHJcbiAgICAgICAgdmFyIHBvc2l0aW9uID0gW107XHJcbiAgICAgICAgcGFyc2VGdW5jdGlvbkFyZ3ModG9rZW5zKS5mb3JFYWNoKGZ1bmN0aW9uIChhcmcsIGkpIHtcclxuICAgICAgICAgICAgdmFyIGZpcnN0VG9rZW4gPSBhcmdbMF07XHJcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNJZGVudFRva2VuKGZpcnN0VG9rZW4pICYmIGZpcnN0VG9rZW4udmFsdWUgPT09ICdsaW5lYXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZSA9IENTU0ltYWdlVHlwZS5MSU5FQVJfR1JBRElFTlQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNJZGVudFRva2VuKGZpcnN0VG9rZW4pICYmIGZpcnN0VG9rZW4udmFsdWUgPT09ICdyYWRpYWwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZSA9IENTU0ltYWdlVHlwZS5SQURJQUxfR1JBRElFTlQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChmaXJzdFRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5GVU5DVElPTikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0VG9rZW4ubmFtZSA9PT0gJ2Zyb20nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbG9yJDEgPSBjb2xvci5wYXJzZShmaXJzdFRva2VuLnZhbHVlc1swXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcHMucHVzaCh7IHN0b3A6IFpFUk9fTEVOR1RILCBjb2xvcjogY29sb3IkMSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZpcnN0VG9rZW4ubmFtZSA9PT0gJ3RvJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb2xvciQxID0gY29sb3IucGFyc2UoZmlyc3RUb2tlbi52YWx1ZXNbMF0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHN0b3BzLnB1c2goeyBzdG9wOiBIVU5EUkVEX1BFUkNFTlQsIGNvbG9yOiBjb2xvciQxIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoZmlyc3RUb2tlbi5uYW1lID09PSAnY29sb3Itc3RvcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZmlyc3RUb2tlbi52YWx1ZXMuZmlsdGVyKG5vbkZ1bmN0aW9uQXJnU2VwYXJhdG9yKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29sb3IkMSA9IGNvbG9yLnBhcnNlKHZhbHVlc1sxXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdG9wXzEgPSB2YWx1ZXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc051bWJlclRva2VuKHN0b3BfMSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3BzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3A6IHsgdHlwZTogVG9rZW5UeXBlLlBFUkNFTlRBR0VfVE9LRU4sIG51bWJlcjogc3RvcF8xLm51bWJlciAqIDEwMCwgZmxhZ3M6IHN0b3BfMS5mbGFncyB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvciQxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0eXBlID09PSBDU1NJbWFnZVR5cGUuTElORUFSX0dSQURJRU5UXHJcbiAgICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgICAgYW5nbGU6IChhbmdsZSArIGRlZygxODApKSAlIGRlZygzNjApLFxyXG4gICAgICAgICAgICAgICAgc3RvcHM6IHN0b3BzLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogdHlwZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDogeyBzaXplOiBzaXplLCBzaGFwZTogc2hhcGUsIHN0b3BzOiBzdG9wcywgcG9zaXRpb246IHBvc2l0aW9uLCB0eXBlOiB0eXBlIH07XHJcbiAgICB9O1xuXG4gICAgdmFyIENMT1NFU1RfU0lERSA9ICdjbG9zZXN0LXNpZGUnO1xyXG4gICAgdmFyIEZBUlRIRVNUX1NJREUgPSAnZmFydGhlc3Qtc2lkZSc7XHJcbiAgICB2YXIgQ0xPU0VTVF9DT1JORVIgPSAnY2xvc2VzdC1jb3JuZXInO1xyXG4gICAgdmFyIEZBUlRIRVNUX0NPUk5FUiA9ICdmYXJ0aGVzdC1jb3JuZXInO1xyXG4gICAgdmFyIENJUkNMRSA9ICdjaXJjbGUnO1xyXG4gICAgdmFyIEVMTElQU0UgPSAnZWxsaXBzZSc7XHJcbiAgICB2YXIgQ09WRVIgPSAnY292ZXInO1xyXG4gICAgdmFyIENPTlRBSU4gPSAnY29udGFpbic7XHJcbiAgICB2YXIgcmFkaWFsR3JhZGllbnQgPSBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgdmFyIHNoYXBlID0gQ1NTUmFkaWFsU2hhcGUuQ0lSQ0xFO1xyXG4gICAgICAgIHZhciBzaXplID0gQ1NTUmFkaWFsRXh0ZW50LkZBUlRIRVNUX0NPUk5FUjtcclxuICAgICAgICB2YXIgc3RvcHMgPSBbXTtcclxuICAgICAgICB2YXIgcG9zaXRpb24gPSBbXTtcclxuICAgICAgICBwYXJzZUZ1bmN0aW9uQXJncyh0b2tlbnMpLmZvckVhY2goZnVuY3Rpb24gKGFyZywgaSkge1xyXG4gICAgICAgICAgICB2YXIgaXNDb2xvclN0b3AgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGlzQXRQb3NpdGlvbl8xID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpc0NvbG9yU3RvcCA9IGFyZy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgdG9rZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNBdFBvc2l0aW9uXzEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSWRlbnRUb2tlbih0b2tlbikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjZW50ZXInOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbi5wdXNoKEZJRlRZX1BFUkNFTlQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uLnB1c2goWkVST19MRU5HVEgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbi5wdXNoKEhVTkRSRURfUEVSQ0VOVCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNMZW5ndGhQZXJjZW50YWdlKHRva2VuKSB8fCBpc0xlbmd0aCh0b2tlbikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uLnB1c2godG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzSWRlbnRUb2tlbih0b2tlbikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDSVJDTEU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSBDU1NSYWRpYWxTaGFwZS5DSVJDTEU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFTExJUFNFOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlID0gQ1NTUmFkaWFsU2hhcGUuRUxMSVBTRTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdhdCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdFBvc2l0aW9uXzEgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ0xPU0VTVF9TSURFOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSBDU1NSYWRpYWxFeHRlbnQuQ0xPU0VTVF9TSURFO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ09WRVI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEZBUlRIRVNUX1NJREU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IENTU1JhZGlhbEV4dGVudC5GQVJUSEVTVF9TSURFO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ09OVEFJTjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ0xPU0VTVF9DT1JORVI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IENTU1JhZGlhbEV4dGVudC5DTE9TRVNUX0NPUk5FUjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEZBUlRIRVNUX0NPUk5FUjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gQ1NTUmFkaWFsRXh0ZW50LkZBUlRIRVNUX0NPUk5FUjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNMZW5ndGgodG9rZW4pIHx8IGlzTGVuZ3RoUGVyY2VudGFnZSh0b2tlbikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNpemUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZS5wdXNoKHRva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICAgICAgfSwgaXNDb2xvclN0b3ApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpc0NvbG9yU3RvcCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvbG9yU3RvcCA9IHBhcnNlQ29sb3JTdG9wKGFyZyk7XHJcbiAgICAgICAgICAgICAgICBzdG9wcy5wdXNoKGNvbG9yU3RvcCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4geyBzaXplOiBzaXplLCBzaGFwZTogc2hhcGUsIHN0b3BzOiBzdG9wcywgcG9zaXRpb246IHBvc2l0aW9uLCB0eXBlOiBDU1NJbWFnZVR5cGUuUkFESUFMX0dSQURJRU5UIH07XHJcbiAgICB9O1xuXG4gICAgdmFyIHByZWZpeFJhZGlhbEdyYWRpZW50ID0gZnVuY3Rpb24gKHRva2Vucykge1xyXG4gICAgICAgIHZhciBzaGFwZSA9IENTU1JhZGlhbFNoYXBlLkNJUkNMRTtcclxuICAgICAgICB2YXIgc2l6ZSA9IENTU1JhZGlhbEV4dGVudC5GQVJUSEVTVF9DT1JORVI7XHJcbiAgICAgICAgdmFyIHN0b3BzID0gW107XHJcbiAgICAgICAgdmFyIHBvc2l0aW9uID0gW107XHJcbiAgICAgICAgcGFyc2VGdW5jdGlvbkFyZ3ModG9rZW5zKS5mb3JFYWNoKGZ1bmN0aW9uIChhcmcsIGkpIHtcclxuICAgICAgICAgICAgdmFyIGlzQ29sb3JTdG9wID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKGkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIGlzQ29sb3JTdG9wID0gYXJnLnJlZHVjZShmdW5jdGlvbiAoYWNjLCB0b2tlbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0lkZW50VG9rZW4odG9rZW4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NlbnRlcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24ucHVzaChGSUZUWV9QRVJDRU5UKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24ucHVzaChaRVJPX0xFTkdUSCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbi5wdXNoKEhVTkRSRURfUEVSQ0VOVCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzTGVuZ3RoUGVyY2VudGFnZSh0b2tlbikgfHwgaXNMZW5ndGgodG9rZW4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uLnB1c2godG9rZW4pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgICAgICAgICB9LCBpc0NvbG9yU3RvcCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaSA9PT0gMSkge1xyXG4gICAgICAgICAgICAgICAgaXNDb2xvclN0b3AgPSBhcmcucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzSWRlbnRUb2tlbih0b2tlbikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDSVJDTEU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSBDU1NSYWRpYWxTaGFwZS5DSVJDTEU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFTExJUFNFOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlID0gQ1NTUmFkaWFsU2hhcGUuRUxMSVBTRTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENPTlRBSU46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENMT1NFU1RfU0lERTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gQ1NTUmFkaWFsRXh0ZW50LkNMT1NFU1RfU0lERTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEZBUlRIRVNUX1NJREU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IENTU1JhZGlhbEV4dGVudC5GQVJUSEVTVF9TSURFO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ0xPU0VTVF9DT1JORVI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IENTU1JhZGlhbEV4dGVudC5DTE9TRVNUX0NPUk5FUjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENPVkVSOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBGQVJUSEVTVF9DT1JORVI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IENTU1JhZGlhbEV4dGVudC5GQVJUSEVTVF9DT1JORVI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzTGVuZ3RoKHRva2VuKSB8fCBpc0xlbmd0aFBlcmNlbnRhZ2UodG9rZW4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShzaXplKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemUucHVzaCh0b2tlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgICAgICAgIH0sIGlzQ29sb3JTdG9wKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaXNDb2xvclN0b3ApIHtcclxuICAgICAgICAgICAgICAgIHZhciBjb2xvclN0b3AgPSBwYXJzZUNvbG9yU3RvcChhcmcpO1xyXG4gICAgICAgICAgICAgICAgc3RvcHMucHVzaChjb2xvclN0b3ApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHsgc2l6ZTogc2l6ZSwgc2hhcGU6IHNoYXBlLCBzdG9wczogc3RvcHMsIHBvc2l0aW9uOiBwb3NpdGlvbiwgdHlwZTogQ1NTSW1hZ2VUeXBlLlJBRElBTF9HUkFESUVOVCB9O1xyXG4gICAgfTtcblxuICAgIHZhciBDU1NJbWFnZVR5cGU7XHJcbiAgICAoZnVuY3Rpb24gKENTU0ltYWdlVHlwZSkge1xyXG4gICAgICAgIENTU0ltYWdlVHlwZVtDU1NJbWFnZVR5cGVbXCJVUkxcIl0gPSAwXSA9IFwiVVJMXCI7XHJcbiAgICAgICAgQ1NTSW1hZ2VUeXBlW0NTU0ltYWdlVHlwZVtcIkxJTkVBUl9HUkFESUVOVFwiXSA9IDFdID0gXCJMSU5FQVJfR1JBRElFTlRcIjtcclxuICAgICAgICBDU1NJbWFnZVR5cGVbQ1NTSW1hZ2VUeXBlW1wiUkFESUFMX0dSQURJRU5UXCJdID0gMl0gPSBcIlJBRElBTF9HUkFESUVOVFwiO1xyXG4gICAgfSkoQ1NTSW1hZ2VUeXBlIHx8IChDU1NJbWFnZVR5cGUgPSB7fSkpO1xyXG4gICAgdmFyIGlzTGluZWFyR3JhZGllbnQgPSBmdW5jdGlvbiAoYmFja2dyb3VuZCkge1xyXG4gICAgICAgIHJldHVybiBiYWNrZ3JvdW5kLnR5cGUgPT09IENTU0ltYWdlVHlwZS5MSU5FQVJfR1JBRElFTlQ7XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzUmFkaWFsR3JhZGllbnQgPSBmdW5jdGlvbiAoYmFja2dyb3VuZCkge1xyXG4gICAgICAgIHJldHVybiBiYWNrZ3JvdW5kLnR5cGUgPT09IENTU0ltYWdlVHlwZS5SQURJQUxfR1JBRElFTlQ7XHJcbiAgICB9O1xyXG4gICAgdmFyIENTU1JhZGlhbFNoYXBlO1xyXG4gICAgKGZ1bmN0aW9uIChDU1NSYWRpYWxTaGFwZSkge1xyXG4gICAgICAgIENTU1JhZGlhbFNoYXBlW0NTU1JhZGlhbFNoYXBlW1wiQ0lSQ0xFXCJdID0gMF0gPSBcIkNJUkNMRVwiO1xyXG4gICAgICAgIENTU1JhZGlhbFNoYXBlW0NTU1JhZGlhbFNoYXBlW1wiRUxMSVBTRVwiXSA9IDFdID0gXCJFTExJUFNFXCI7XHJcbiAgICB9KShDU1NSYWRpYWxTaGFwZSB8fCAoQ1NTUmFkaWFsU2hhcGUgPSB7fSkpO1xyXG4gICAgdmFyIENTU1JhZGlhbEV4dGVudDtcclxuICAgIChmdW5jdGlvbiAoQ1NTUmFkaWFsRXh0ZW50KSB7XHJcbiAgICAgICAgQ1NTUmFkaWFsRXh0ZW50W0NTU1JhZGlhbEV4dGVudFtcIkNMT1NFU1RfU0lERVwiXSA9IDBdID0gXCJDTE9TRVNUX1NJREVcIjtcclxuICAgICAgICBDU1NSYWRpYWxFeHRlbnRbQ1NTUmFkaWFsRXh0ZW50W1wiRkFSVEhFU1RfU0lERVwiXSA9IDFdID0gXCJGQVJUSEVTVF9TSURFXCI7XHJcbiAgICAgICAgQ1NTUmFkaWFsRXh0ZW50W0NTU1JhZGlhbEV4dGVudFtcIkNMT1NFU1RfQ09STkVSXCJdID0gMl0gPSBcIkNMT1NFU1RfQ09STkVSXCI7XHJcbiAgICAgICAgQ1NTUmFkaWFsRXh0ZW50W0NTU1JhZGlhbEV4dGVudFtcIkZBUlRIRVNUX0NPUk5FUlwiXSA9IDNdID0gXCJGQVJUSEVTVF9DT1JORVJcIjtcclxuICAgIH0pKENTU1JhZGlhbEV4dGVudCB8fCAoQ1NTUmFkaWFsRXh0ZW50ID0ge30pKTtcclxuICAgIHZhciBpbWFnZSA9IHtcclxuICAgICAgICBuYW1lOiAnaW1hZ2UnLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09IFRva2VuVHlwZS5VUkxfVE9LRU4pIHtcclxuICAgICAgICAgICAgICAgIHZhciBpbWFnZV8xID0geyB1cmw6IHZhbHVlLnZhbHVlLCB0eXBlOiBDU1NJbWFnZVR5cGUuVVJMIH07XHJcbiAgICAgICAgICAgICAgICBDYWNoZVN0b3JhZ2UuZ2V0SW5zdGFuY2UoKS5hZGRJbWFnZSh2YWx1ZS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaW1hZ2VfMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodmFsdWUudHlwZSA9PT0gVG9rZW5UeXBlLkZVTkNUSU9OKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgaW1hZ2VGdW5jdGlvbiA9IFNVUFBPUlRFRF9JTUFHRV9GVU5DVElPTlNbdmFsdWUubmFtZV07XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGltYWdlRnVuY3Rpb24gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGluZyB0byBwYXJzZSBhbiB1bnN1cHBvcnRlZCBpbWFnZSBmdW5jdGlvbiBcXFwiXCIgKyB2YWx1ZS5uYW1lICsgXCJcXFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGltYWdlRnVuY3Rpb24odmFsdWUudmFsdWVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBpbWFnZSB0eXBlXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBmdW5jdGlvbiBpc1N1cHBvcnRlZEltYWdlKHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLnR5cGUgIT09IFRva2VuVHlwZS5GVU5DVElPTiB8fCBTVVBQT1JURURfSU1BR0VfRlVOQ1RJT05TW3ZhbHVlLm5hbWVdO1xyXG4gICAgfVxyXG4gICAgdmFyIFNVUFBPUlRFRF9JTUFHRV9GVU5DVElPTlMgPSB7XHJcbiAgICAgICAgJ2xpbmVhci1ncmFkaWVudCc6IGxpbmVhckdyYWRpZW50LFxyXG4gICAgICAgICctbW96LWxpbmVhci1ncmFkaWVudCc6IHByZWZpeExpbmVhckdyYWRpZW50LFxyXG4gICAgICAgICctbXMtbGluZWFyLWdyYWRpZW50JzogcHJlZml4TGluZWFyR3JhZGllbnQsXHJcbiAgICAgICAgJy1vLWxpbmVhci1ncmFkaWVudCc6IHByZWZpeExpbmVhckdyYWRpZW50LFxyXG4gICAgICAgICctd2Via2l0LWxpbmVhci1ncmFkaWVudCc6IHByZWZpeExpbmVhckdyYWRpZW50LFxyXG4gICAgICAgICdyYWRpYWwtZ3JhZGllbnQnOiByYWRpYWxHcmFkaWVudCxcclxuICAgICAgICAnLW1vei1yYWRpYWwtZ3JhZGllbnQnOiBwcmVmaXhSYWRpYWxHcmFkaWVudCxcclxuICAgICAgICAnLW1zLXJhZGlhbC1ncmFkaWVudCc6IHByZWZpeFJhZGlhbEdyYWRpZW50LFxyXG4gICAgICAgICctby1yYWRpYWwtZ3JhZGllbnQnOiBwcmVmaXhSYWRpYWxHcmFkaWVudCxcclxuICAgICAgICAnLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQnOiBwcmVmaXhSYWRpYWxHcmFkaWVudCxcclxuICAgICAgICAnLXdlYmtpdC1ncmFkaWVudCc6IHdlYmtpdEdyYWRpZW50XHJcbiAgICB9O1xuXG4gICAgdmFyIGJhY2tncm91bmRJbWFnZSA9IHtcclxuICAgICAgICBuYW1lOiAnYmFja2dyb3VuZC1pbWFnZScsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnbm9uZScsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuTElTVCxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGZpcnN0ID0gdG9rZW5zWzBdO1xyXG4gICAgICAgICAgICBpZiAoZmlyc3QudHlwZSA9PT0gVG9rZW5UeXBlLklERU5UX1RPS0VOICYmIGZpcnN0LnZhbHVlID09PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdG9rZW5zLmZpbHRlcihmdW5jdGlvbiAodmFsdWUpIHsgcmV0dXJuIG5vbkZ1bmN0aW9uQXJnU2VwYXJhdG9yKHZhbHVlKSAmJiBpc1N1cHBvcnRlZEltYWdlKHZhbHVlKTsgfSkubWFwKGltYWdlLnBhcnNlKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xuXG4gICAgdmFyIGJhY2tncm91bmRPcmlnaW4gPSB7XHJcbiAgICAgICAgbmFtZTogJ2JhY2tncm91bmQtb3JpZ2luJyxcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICdib3JkZXItYm94JyxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLkxJU1QsXHJcbiAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh0b2tlbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRva2Vucy5tYXAoZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNJZGVudFRva2VuKHRva2VuKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncGFkZGluZy1ib3gnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDEgLyogUEFERElOR19CT1ggKi87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQtYm94JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAyIC8qIENPTlRFTlRfQk9YICovO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiAwIC8qIEJPUkRFUl9CT1ggKi87XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH07XG5cbiAgICB2YXIgYmFja2dyb3VuZFBvc2l0aW9uID0ge1xyXG4gICAgICAgIG5hbWU6ICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyxcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICcwJSAwJScsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuTElTVCxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUZ1bmN0aW9uQXJncyh0b2tlbnMpXHJcbiAgICAgICAgICAgICAgICAubWFwKGZ1bmN0aW9uICh2YWx1ZXMpIHsgcmV0dXJuIHZhbHVlcy5maWx0ZXIoaXNMZW5ndGhQZXJjZW50YWdlKTsgfSlcclxuICAgICAgICAgICAgICAgIC5tYXAocGFyc2VMZW5ndGhQZXJjZW50YWdlVHVwbGUpO1xyXG4gICAgICAgIH1cclxuICAgIH07XG5cbiAgICB2YXIgQkFDS0dST1VORF9SRVBFQVQ7XHJcbiAgICAoZnVuY3Rpb24gKEJBQ0tHUk9VTkRfUkVQRUFUKSB7XHJcbiAgICAgICAgQkFDS0dST1VORF9SRVBFQVRbQkFDS0dST1VORF9SRVBFQVRbXCJSRVBFQVRcIl0gPSAwXSA9IFwiUkVQRUFUXCI7XHJcbiAgICAgICAgQkFDS0dST1VORF9SRVBFQVRbQkFDS0dST1VORF9SRVBFQVRbXCJOT19SRVBFQVRcIl0gPSAxXSA9IFwiTk9fUkVQRUFUXCI7XHJcbiAgICAgICAgQkFDS0dST1VORF9SRVBFQVRbQkFDS0dST1VORF9SRVBFQVRbXCJSRVBFQVRfWFwiXSA9IDJdID0gXCJSRVBFQVRfWFwiO1xyXG4gICAgICAgIEJBQ0tHUk9VTkRfUkVQRUFUW0JBQ0tHUk9VTkRfUkVQRUFUW1wiUkVQRUFUX1lcIl0gPSAzXSA9IFwiUkVQRUFUX1lcIjtcclxuICAgIH0pKEJBQ0tHUk9VTkRfUkVQRUFUIHx8IChCQUNLR1JPVU5EX1JFUEVBVCA9IHt9KSk7XHJcbiAgICB2YXIgYmFja2dyb3VuZFJlcGVhdCA9IHtcclxuICAgICAgICBuYW1lOiAnYmFja2dyb3VuZC1yZXBlYXQnLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ3JlcGVhdCcsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5MSVNULFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUZ1bmN0aW9uQXJncyh0b2tlbnMpXHJcbiAgICAgICAgICAgICAgICAubWFwKGZ1bmN0aW9uICh2YWx1ZXMpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXNcclxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGlzSWRlbnRUb2tlbilcclxuICAgICAgICAgICAgICAgICAgICAubWFwKGZ1bmN0aW9uICh0b2tlbikgeyByZXR1cm4gdG9rZW4udmFsdWU7IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5tYXAocGFyc2VCYWNrZ3JvdW5kUmVwZWF0KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdmFyIHBhcnNlQmFja2dyb3VuZFJlcGVhdCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgICAgIHN3aXRjaCAodmFsdWUpIHtcclxuICAgICAgICAgICAgY2FzZSAnbm8tcmVwZWF0JzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBCQUNLR1JPVU5EX1JFUEVBVC5OT19SRVBFQVQ7XHJcbiAgICAgICAgICAgIGNhc2UgJ3JlcGVhdC14JzpcclxuICAgICAgICAgICAgY2FzZSAncmVwZWF0IG5vLXJlcGVhdCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gQkFDS0dST1VORF9SRVBFQVQuUkVQRUFUX1g7XHJcbiAgICAgICAgICAgIGNhc2UgJ3JlcGVhdC15JzpcclxuICAgICAgICAgICAgY2FzZSAnbm8tcmVwZWF0IHJlcGVhdCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gQkFDS0dST1VORF9SRVBFQVQuUkVQRUFUX1k7XHJcbiAgICAgICAgICAgIGNhc2UgJ3JlcGVhdCc6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gQkFDS0dST1VORF9SRVBFQVQuUkVQRUFUO1xyXG4gICAgICAgIH1cclxuICAgIH07XG5cbiAgICB2YXIgQkFDS0dST1VORF9TSVpFO1xyXG4gICAgKGZ1bmN0aW9uIChCQUNLR1JPVU5EX1NJWkUpIHtcclxuICAgICAgICBCQUNLR1JPVU5EX1NJWkVbXCJBVVRPXCJdID0gXCJhdXRvXCI7XHJcbiAgICAgICAgQkFDS0dST1VORF9TSVpFW1wiQ09OVEFJTlwiXSA9IFwiY29udGFpblwiO1xyXG4gICAgICAgIEJBQ0tHUk9VTkRfU0laRVtcIkNPVkVSXCJdID0gXCJjb3ZlclwiO1xyXG4gICAgfSkoQkFDS0dST1VORF9TSVpFIHx8IChCQUNLR1JPVU5EX1NJWkUgPSB7fSkpO1xyXG4gICAgdmFyIGJhY2tncm91bmRTaXplID0ge1xyXG4gICAgICAgIG5hbWU6ICdiYWNrZ3JvdW5kLXNpemUnLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJzAnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuTElTVCxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHRva2Vucykge1xyXG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGdW5jdGlvbkFyZ3ModG9rZW5zKS5tYXAoZnVuY3Rpb24gKHZhbHVlcykgeyByZXR1cm4gdmFsdWVzLmZpbHRlcihpc0JhY2tncm91bmRTaXplSW5mb1Rva2VuKTsgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHZhciBpc0JhY2tncm91bmRTaXplSW5mb1Rva2VuID0gZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIGlzSWRlbnRUb2tlbih2YWx1ZSkgfHwgaXNMZW5ndGhQZXJjZW50YWdlKHZhbHVlKTtcclxuICAgIH07XG5cbiAgICB2YXIgYm9yZGVyQ29sb3JGb3JTaWRlID0gZnVuY3Rpb24gKHNpZGUpIHsgcmV0dXJuICh7XHJcbiAgICAgICAgbmFtZTogXCJib3JkZXItXCIgKyBzaWRlICsgXCItY29sb3JcIixcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5UWVBFX1ZBTFVFLFxyXG4gICAgICAgIGZvcm1hdDogJ2NvbG9yJ1xyXG4gICAgfSk7IH07XHJcbiAgICB2YXIgYm9yZGVyVG9wQ29sb3IgPSBib3JkZXJDb2xvckZvclNpZGUoJ3RvcCcpO1xyXG4gICAgdmFyIGJvcmRlclJpZ2h0Q29sb3IgPSBib3JkZXJDb2xvckZvclNpZGUoJ3JpZ2h0Jyk7XHJcbiAgICB2YXIgYm9yZGVyQm90dG9tQ29sb3IgPSBib3JkZXJDb2xvckZvclNpZGUoJ2JvdHRvbScpO1xyXG4gICAgdmFyIGJvcmRlckxlZnRDb2xvciA9IGJvcmRlckNvbG9yRm9yU2lkZSgnbGVmdCcpO1xuXG4gICAgdmFyIGJvcmRlclJhZGl1c0ZvclNpZGUgPSBmdW5jdGlvbiAoc2lkZSkgeyByZXR1cm4gKHtcclxuICAgICAgICBuYW1lOiBcImJvcmRlci1yYWRpdXMtXCIgKyBzaWRlLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJzAgMCcsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5MSVNULFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW5zKSB7IHJldHVybiBwYXJzZUxlbmd0aFBlcmNlbnRhZ2VUdXBsZSh0b2tlbnMuZmlsdGVyKGlzTGVuZ3RoUGVyY2VudGFnZSkpOyB9XHJcbiAgICB9KTsgfTtcclxuICAgIHZhciBib3JkZXJUb3BMZWZ0UmFkaXVzID0gYm9yZGVyUmFkaXVzRm9yU2lkZSgndG9wLWxlZnQnKTtcclxuICAgIHZhciBib3JkZXJUb3BSaWdodFJhZGl1cyA9IGJvcmRlclJhZGl1c0ZvclNpZGUoJ3RvcC1yaWdodCcpO1xyXG4gICAgdmFyIGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzID0gYm9yZGVyUmFkaXVzRm9yU2lkZSgnYm90dG9tLXJpZ2h0Jyk7XHJcbiAgICB2YXIgYm9yZGVyQm90dG9tTGVmdFJhZGl1cyA9IGJvcmRlclJhZGl1c0ZvclNpZGUoJ2JvdHRvbS1sZWZ0Jyk7XG5cbiAgICB2YXIgQk9SREVSX1NUWUxFO1xyXG4gICAgKGZ1bmN0aW9uIChCT1JERVJfU1RZTEUpIHtcclxuICAgICAgICBCT1JERVJfU1RZTEVbQk9SREVSX1NUWUxFW1wiTk9ORVwiXSA9IDBdID0gXCJOT05FXCI7XHJcbiAgICAgICAgQk9SREVSX1NUWUxFW0JPUkRFUl9TVFlMRVtcIlNPTElEXCJdID0gMV0gPSBcIlNPTElEXCI7XHJcbiAgICB9KShCT1JERVJfU1RZTEUgfHwgKEJPUkRFUl9TVFlMRSA9IHt9KSk7XHJcbiAgICB2YXIgYm9yZGVyU3R5bGVGb3JTaWRlID0gZnVuY3Rpb24gKHNpZGUpIHsgcmV0dXJuICh7XHJcbiAgICAgICAgbmFtZTogXCJib3JkZXItXCIgKyBzaWRlICsgXCItc3R5bGVcIixcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICdzb2xpZCcsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5JREVOVF9WQUxVRSxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHN0eWxlKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoc3R5bGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ25vbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBCT1JERVJfU1RZTEUuTk9ORTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gQk9SREVSX1NUWUxFLlNPTElEO1xyXG4gICAgICAgIH1cclxuICAgIH0pOyB9O1xyXG4gICAgdmFyIGJvcmRlclRvcFN0eWxlID0gYm9yZGVyU3R5bGVGb3JTaWRlKCd0b3AnKTtcclxuICAgIHZhciBib3JkZXJSaWdodFN0eWxlID0gYm9yZGVyU3R5bGVGb3JTaWRlKCdyaWdodCcpO1xyXG4gICAgdmFyIGJvcmRlckJvdHRvbVN0eWxlID0gYm9yZGVyU3R5bGVGb3JTaWRlKCdib3R0b20nKTtcclxuICAgIHZhciBib3JkZXJMZWZ0U3R5bGUgPSBib3JkZXJTdHlsZUZvclNpZGUoJ2xlZnQnKTtcblxuICAgIHZhciBib3JkZXJXaWR0aEZvclNpZGUgPSBmdW5jdGlvbiAoc2lkZSkgeyByZXR1cm4gKHtcclxuICAgICAgICBuYW1lOiBcImJvcmRlci1cIiArIHNpZGUgKyBcIi13aWR0aFwiLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJzAnLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLlZBTFVFLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgICAgICAgICBpZiAoaXNEaW1lbnNpb25Ub2tlbih0b2tlbikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbi5udW1iZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7IH07XHJcbiAgICB2YXIgYm9yZGVyVG9wV2lkdGggPSBib3JkZXJXaWR0aEZvclNpZGUoJ3RvcCcpO1xyXG4gICAgdmFyIGJvcmRlclJpZ2h0V2lkdGggPSBib3JkZXJXaWR0aEZvclNpZGUoJ3JpZ2h0Jyk7XHJcbiAgICB2YXIgYm9yZGVyQm90dG9tV2lkdGggPSBib3JkZXJXaWR0aEZvclNpZGUoJ2JvdHRvbScpO1xyXG4gICAgdmFyIGJvcmRlckxlZnRXaWR0aCA9IGJvcmRlcldpZHRoRm9yU2lkZSgnbGVmdCcpO1xuXG4gICAgdmFyIGNvbG9yJDEgPSB7XHJcbiAgICAgICAgbmFtZTogXCJjb2xvclwiLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLlRZUEVfVkFMVUUsXHJcbiAgICAgICAgZm9ybWF0OiAnY29sb3InXHJcbiAgICB9O1xuXG4gICAgdmFyIGRpc3BsYXkgPSB7XHJcbiAgICAgICAgbmFtZTogJ2Rpc3BsYXknLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ2lubGluZS1ibG9jaycsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5MSVNULFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0b2tlbnMuZmlsdGVyKGlzSWRlbnRUb2tlbikucmVkdWNlKGZ1bmN0aW9uIChiaXQsIHRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYml0IHwgcGFyc2VEaXNwbGF5VmFsdWUodG9rZW4udmFsdWUpO1xyXG4gICAgICAgICAgICB9LCAwIC8qIE5PTkUgKi8pO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgcGFyc2VEaXNwbGF5VmFsdWUgPSBmdW5jdGlvbiAoZGlzcGxheSkge1xyXG4gICAgICAgIHN3aXRjaCAoZGlzcGxheSkge1xyXG4gICAgICAgICAgICBjYXNlICdibG9jayc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMiAvKiBCTE9DSyAqLztcclxuICAgICAgICAgICAgY2FzZSAnaW5saW5lJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiA0IC8qIElOTElORSAqLztcclxuICAgICAgICAgICAgY2FzZSAncnVuLWluJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiA4IC8qIFJVTl9JTiAqLztcclxuICAgICAgICAgICAgY2FzZSAnZmxvdyc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTYgLyogRkxPVyAqLztcclxuICAgICAgICAgICAgY2FzZSAnZmxvdy1yb290JzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAzMiAvKiBGTE9XX1JPT1QgKi87XHJcbiAgICAgICAgICAgIGNhc2UgJ3RhYmxlJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiA2NCAvKiBUQUJMRSAqLztcclxuICAgICAgICAgICAgY2FzZSAnZmxleCc6XHJcbiAgICAgICAgICAgIGNhc2UgJy13ZWJraXQtZmxleCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTI4IC8qIEZMRVggKi87XHJcbiAgICAgICAgICAgIGNhc2UgJ2dyaWQnOlxyXG4gICAgICAgICAgICBjYXNlICctbXMtZ3JpZCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMjU2IC8qIEdSSUQgKi87XHJcbiAgICAgICAgICAgIGNhc2UgJ3J1YnknOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDUxMiAvKiBSVUJZICovO1xyXG4gICAgICAgICAgICBjYXNlICdzdWJncmlkJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAxMDI0IC8qIFNVQkdSSUQgKi87XHJcbiAgICAgICAgICAgIGNhc2UgJ2xpc3QtaXRlbSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMjA0OCAvKiBMSVNUX0lURU0gKi87XHJcbiAgICAgICAgICAgIGNhc2UgJ3RhYmxlLXJvdy1ncm91cCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gNDA5NiAvKiBUQUJMRV9ST1dfR1JPVVAgKi87XHJcbiAgICAgICAgICAgIGNhc2UgJ3RhYmxlLWhlYWRlci1ncm91cCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gODE5MiAvKiBUQUJMRV9IRUFERVJfR1JPVVAgKi87XHJcbiAgICAgICAgICAgIGNhc2UgJ3RhYmxlLWZvb3Rlci1ncm91cCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTYzODQgLyogVEFCTEVfRk9PVEVSX0dST1VQICovO1xyXG4gICAgICAgICAgICBjYXNlICd0YWJsZS1yb3cnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDMyNzY4IC8qIFRBQkxFX1JPVyAqLztcclxuICAgICAgICAgICAgY2FzZSAndGFibGUtY2VsbCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gNjU1MzYgLyogVEFCTEVfQ0VMTCAqLztcclxuICAgICAgICAgICAgY2FzZSAndGFibGUtY29sdW1uLWdyb3VwJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAxMzEwNzIgLyogVEFCTEVfQ09MVU1OX0dST1VQICovO1xyXG4gICAgICAgICAgICBjYXNlICd0YWJsZS1jb2x1bW4nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDI2MjE0NCAvKiBUQUJMRV9DT0xVTU4gKi87XHJcbiAgICAgICAgICAgIGNhc2UgJ3RhYmxlLWNhcHRpb24nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDUyNDI4OCAvKiBUQUJMRV9DQVBUSU9OICovO1xyXG4gICAgICAgICAgICBjYXNlICdydWJ5LWJhc2UnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDEwNDg1NzYgLyogUlVCWV9CQVNFICovO1xyXG4gICAgICAgICAgICBjYXNlICdydWJ5LXRleHQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDIwOTcxNTIgLyogUlVCWV9URVhUICovO1xyXG4gICAgICAgICAgICBjYXNlICdydWJ5LWJhc2UtY29udGFpbmVyJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiA0MTk0MzA0IC8qIFJVQllfQkFTRV9DT05UQUlORVIgKi87XHJcbiAgICAgICAgICAgIGNhc2UgJ3J1YnktdGV4dC1jb250YWluZXInOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDgzODg2MDggLyogUlVCWV9URVhUX0NPTlRBSU5FUiAqLztcclxuICAgICAgICAgICAgY2FzZSAnY29udGVudHMnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDE2Nzc3MjE2IC8qIENPTlRFTlRTICovO1xyXG4gICAgICAgICAgICBjYXNlICdpbmxpbmUtYmxvY2snOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDMzNTU0NDMyIC8qIElOTElORV9CTE9DSyAqLztcclxuICAgICAgICAgICAgY2FzZSAnaW5saW5lLWxpc3QtaXRlbSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gNjcxMDg4NjQgLyogSU5MSU5FX0xJU1RfSVRFTSAqLztcclxuICAgICAgICAgICAgY2FzZSAnaW5saW5lLXRhYmxlJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAxMzQyMTc3MjggLyogSU5MSU5FX1RBQkxFICovO1xyXG4gICAgICAgICAgICBjYXNlICdpbmxpbmUtZmxleCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMjY4NDM1NDU2IC8qIElOTElORV9GTEVYICovO1xyXG4gICAgICAgICAgICBjYXNlICdpbmxpbmUtZ3JpZCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gNTM2ODcwOTEyIC8qIElOTElORV9HUklEICovO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gMCAvKiBOT05FICovO1xyXG4gICAgfTtcblxuICAgIHZhciBGTE9BVDtcclxuICAgIChmdW5jdGlvbiAoRkxPQVQpIHtcclxuICAgICAgICBGTE9BVFtGTE9BVFtcIk5PTkVcIl0gPSAwXSA9IFwiTk9ORVwiO1xyXG4gICAgICAgIEZMT0FUW0ZMT0FUW1wiTEVGVFwiXSA9IDFdID0gXCJMRUZUXCI7XHJcbiAgICAgICAgRkxPQVRbRkxPQVRbXCJSSUdIVFwiXSA9IDJdID0gXCJSSUdIVFwiO1xyXG4gICAgICAgIEZMT0FUW0ZMT0FUW1wiSU5MSU5FX1NUQVJUXCJdID0gM10gPSBcIklOTElORV9TVEFSVFwiO1xyXG4gICAgICAgIEZMT0FUW0ZMT0FUW1wiSU5MSU5FX0VORFwiXSA9IDRdID0gXCJJTkxJTkVfRU5EXCI7XHJcbiAgICB9KShGTE9BVCB8fCAoRkxPQVQgPSB7fSkpO1xyXG4gICAgdmFyIGZsb2F0ID0ge1xyXG4gICAgICAgIG5hbWU6ICdmbG9hdCcsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnbm9uZScsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5JREVOVF9WQUxVRSxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKGZsb2F0KSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoZmxvYXQpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBGTE9BVC5MRUZUO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBGTE9BVC5SSUdIVDtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2lubGluZS1zdGFydCc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZMT0FULklOTElORV9TVEFSVDtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2lubGluZS1lbmQnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBGTE9BVC5JTkxJTkVfRU5EO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBGTE9BVC5OT05FO1xyXG4gICAgICAgIH1cclxuICAgIH07XG5cbiAgICB2YXIgbGV0dGVyU3BhY2luZyA9IHtcclxuICAgICAgICBuYW1lOiAnbGV0dGVyLXNwYWNpbmcnLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJzAnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuVkFMVUUsXHJcbiAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLklERU5UX1RPS0VOICYmIHRva2VuLnZhbHVlID09PSAnbm9ybWFsJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5OVU1CRVJfVE9LRU4pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbi5udW1iZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5ESU1FTlNJT05fVE9LRU4pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbi5udW1iZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBMSU5FX0JSRUFLO1xyXG4gICAgKGZ1bmN0aW9uIChMSU5FX0JSRUFLKSB7XHJcbiAgICAgICAgTElORV9CUkVBS1tcIk5PUk1BTFwiXSA9IFwibm9ybWFsXCI7XHJcbiAgICAgICAgTElORV9CUkVBS1tcIlNUUklDVFwiXSA9IFwic3RyaWN0XCI7XHJcbiAgICB9KShMSU5FX0JSRUFLIHx8IChMSU5FX0JSRUFLID0ge30pKTtcclxuICAgIHZhciBsaW5lQnJlYWsgPSB7XHJcbiAgICAgICAgbmFtZTogJ2xpbmUtYnJlYWsnLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ25vcm1hbCcsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5JREVOVF9WQUxVRSxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKGxpbmVCcmVhaykge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGxpbmVCcmVhaykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnc3RyaWN0JzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElORV9CUkVBSy5TVFJJQ1Q7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdub3JtYWwnOlxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElORV9CUkVBSy5OT1JNQUw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xuXG4gICAgdmFyIGxpbmVIZWlnaHQgPSB7XHJcbiAgICAgICAgbmFtZTogJ2xpbmUtaGVpZ2h0JyxcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICdub3JtYWwnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuVE9LRU5fVkFMVUVcclxuICAgIH07XHJcbiAgICB2YXIgY29tcHV0ZUxpbmVIZWlnaHQgPSBmdW5jdGlvbiAodG9rZW4sIGZvbnRTaXplKSB7XHJcbiAgICAgICAgaWYgKGlzSWRlbnRUb2tlbih0b2tlbikgJiYgdG9rZW4udmFsdWUgPT09ICdub3JtYWwnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAxLjIgKiBmb250U2l6ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLk5VTUJFUl9UT0tFTikge1xyXG4gICAgICAgICAgICByZXR1cm4gZm9udFNpemUgKiB0b2tlbi5udW1iZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGlzTGVuZ3RoUGVyY2VudGFnZSh0b2tlbikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGdldEFic29sdXRlVmFsdWUodG9rZW4sIGZvbnRTaXplKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZvbnRTaXplO1xyXG4gICAgfTtcblxuICAgIHZhciBsaXN0U3R5bGVJbWFnZSA9IHtcclxuICAgICAgICBuYW1lOiAnbGlzdC1zdHlsZS1pbWFnZScsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnbm9uZScsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuVkFMVUUsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICAgICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlblR5cGUuSURFTlRfVE9LRU4gJiYgdG9rZW4udmFsdWUgPT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGltYWdlLnBhcnNlKHRva2VuKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xuXG4gICAgdmFyIExJU1RfU1RZTEVfUE9TSVRJT047XHJcbiAgICAoZnVuY3Rpb24gKExJU1RfU1RZTEVfUE9TSVRJT04pIHtcclxuICAgICAgICBMSVNUX1NUWUxFX1BPU0lUSU9OW0xJU1RfU1RZTEVfUE9TSVRJT05bXCJJTlNJREVcIl0gPSAwXSA9IFwiSU5TSURFXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9QT1NJVElPTltMSVNUX1NUWUxFX1BPU0lUSU9OW1wiT1VUU0lERVwiXSA9IDFdID0gXCJPVVRTSURFXCI7XHJcbiAgICB9KShMSVNUX1NUWUxFX1BPU0lUSU9OIHx8IChMSVNUX1NUWUxFX1BPU0lUSU9OID0ge30pKTtcclxuICAgIHZhciBsaXN0U3R5bGVQb3NpdGlvbiA9IHtcclxuICAgICAgICBuYW1lOiAnbGlzdC1zdHlsZS1wb3NpdGlvbicsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnb3V0c2lkZScsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5JREVOVF9WQUxVRSxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAocG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2luc2lkZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfUE9TSVRJT04uSU5TSURFO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnb3V0c2lkZSc6XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1BPU0lUSU9OLk9VVFNJREU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xuXG4gICAgdmFyIExJU1RfU1RZTEVfVFlQRTtcclxuICAgIChmdW5jdGlvbiAoTElTVF9TVFlMRV9UWVBFKSB7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIk5PTkVcIl0gPSAtMV0gPSBcIk5PTkVcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiRElTQ1wiXSA9IDBdID0gXCJESVNDXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIkNJUkNMRVwiXSA9IDFdID0gXCJDSVJDTEVcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiU1FVQVJFXCJdID0gMl0gPSBcIlNRVUFSRVwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJERUNJTUFMXCJdID0gM10gPSBcIkRFQ0lNQUxcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiQ0pLX0RFQ0lNQUxcIl0gPSA0XSA9IFwiQ0pLX0RFQ0lNQUxcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiREVDSU1BTF9MRUFESU5HX1pFUk9cIl0gPSA1XSA9IFwiREVDSU1BTF9MRUFESU5HX1pFUk9cIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiTE9XRVJfUk9NQU5cIl0gPSA2XSA9IFwiTE9XRVJfUk9NQU5cIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiVVBQRVJfUk9NQU5cIl0gPSA3XSA9IFwiVVBQRVJfUk9NQU5cIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiTE9XRVJfR1JFRUtcIl0gPSA4XSA9IFwiTE9XRVJfR1JFRUtcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiTE9XRVJfQUxQSEFcIl0gPSA5XSA9IFwiTE9XRVJfQUxQSEFcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiVVBQRVJfQUxQSEFcIl0gPSAxMF0gPSBcIlVQUEVSX0FMUEhBXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIkFSQUJJQ19JTkRJQ1wiXSA9IDExXSA9IFwiQVJBQklDX0lORElDXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIkFSTUVOSUFOXCJdID0gMTJdID0gXCJBUk1FTklBTlwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJCRU5HQUxJXCJdID0gMTNdID0gXCJCRU5HQUxJXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIkNBTUJPRElBTlwiXSA9IDE0XSA9IFwiQ0FNQk9ESUFOXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIkNKS19FQVJUSExZX0JSQU5DSFwiXSA9IDE1XSA9IFwiQ0pLX0VBUlRITFlfQlJBTkNIXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIkNKS19IRUFWRU5MWV9TVEVNXCJdID0gMTZdID0gXCJDSktfSEVBVkVOTFlfU1RFTVwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJDSktfSURFT0dSQVBISUNcIl0gPSAxN10gPSBcIkNKS19JREVPR1JBUEhJQ1wiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJERVZBTkFHQVJJXCJdID0gMThdID0gXCJERVZBTkFHQVJJXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIkVUSElPUElDX05VTUVSSUNcIl0gPSAxOV0gPSBcIkVUSElPUElDX05VTUVSSUNcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiR0VPUkdJQU5cIl0gPSAyMF0gPSBcIkdFT1JHSUFOXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIkdVSkFSQVRJXCJdID0gMjFdID0gXCJHVUpBUkFUSVwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJHVVJNVUtISVwiXSA9IDIyXSA9IFwiR1VSTVVLSElcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiSEVCUkVXXCJdID0gMjJdID0gXCJIRUJSRVdcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiSElSQUdBTkFcIl0gPSAyM10gPSBcIkhJUkFHQU5BXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIkhJUkFHQU5BX0lST0hBXCJdID0gMjRdID0gXCJISVJBR0FOQV9JUk9IQVwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJKQVBBTkVTRV9GT1JNQUxcIl0gPSAyNV0gPSBcIkpBUEFORVNFX0ZPUk1BTFwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJKQVBBTkVTRV9JTkZPUk1BTFwiXSA9IDI2XSA9IFwiSkFQQU5FU0VfSU5GT1JNQUxcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiS0FOTkFEQVwiXSA9IDI3XSA9IFwiS0FOTkFEQVwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJLQVRBS0FOQVwiXSA9IDI4XSA9IFwiS0FUQUtBTkFcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiS0FUQUtBTkFfSVJPSEFcIl0gPSAyOV0gPSBcIktBVEFLQU5BX0lST0hBXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIktITUVSXCJdID0gMzBdID0gXCJLSE1FUlwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJLT1JFQU5fSEFOR1VMX0ZPUk1BTFwiXSA9IDMxXSA9IFwiS09SRUFOX0hBTkdVTF9GT1JNQUxcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiS09SRUFOX0hBTkpBX0ZPUk1BTFwiXSA9IDMyXSA9IFwiS09SRUFOX0hBTkpBX0ZPUk1BTFwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJLT1JFQU5fSEFOSkFfSU5GT1JNQUxcIl0gPSAzM10gPSBcIktPUkVBTl9IQU5KQV9JTkZPUk1BTFwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJMQU9cIl0gPSAzNF0gPSBcIkxBT1wiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJMT1dFUl9BUk1FTklBTlwiXSA9IDM1XSA9IFwiTE9XRVJfQVJNRU5JQU5cIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiTUFMQVlBTEFNXCJdID0gMzZdID0gXCJNQUxBWUFMQU1cIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiTU9OR09MSUFOXCJdID0gMzddID0gXCJNT05HT0xJQU5cIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiTVlBTk1BUlwiXSA9IDM4XSA9IFwiTVlBTk1BUlwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJPUklZQVwiXSA9IDM5XSA9IFwiT1JJWUFcIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiUEVSU0lBTlwiXSA9IDQwXSA9IFwiUEVSU0lBTlwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJTSU1QX0NISU5FU0VfRk9STUFMXCJdID0gNDFdID0gXCJTSU1QX0NISU5FU0VfRk9STUFMXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIlNJTVBfQ0hJTkVTRV9JTkZPUk1BTFwiXSA9IDQyXSA9IFwiU0lNUF9DSElORVNFX0lORk9STUFMXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIlRBTUlMXCJdID0gNDNdID0gXCJUQU1JTFwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJURUxVR1VcIl0gPSA0NF0gPSBcIlRFTFVHVVwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJUSEFJXCJdID0gNDVdID0gXCJUSEFJXCI7XHJcbiAgICAgICAgTElTVF9TVFlMRV9UWVBFW0xJU1RfU1RZTEVfVFlQRVtcIlRJQkVUQU5cIl0gPSA0Nl0gPSBcIlRJQkVUQU5cIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiVFJBRF9DSElORVNFX0ZPUk1BTFwiXSA9IDQ3XSA9IFwiVFJBRF9DSElORVNFX0ZPUk1BTFwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJUUkFEX0NISU5FU0VfSU5GT1JNQUxcIl0gPSA0OF0gPSBcIlRSQURfQ0hJTkVTRV9JTkZPUk1BTFwiO1xyXG4gICAgICAgIExJU1RfU1RZTEVfVFlQRVtMSVNUX1NUWUxFX1RZUEVbXCJVUFBFUl9BUk1FTklBTlwiXSA9IDQ5XSA9IFwiVVBQRVJfQVJNRU5JQU5cIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiRElTQ0xPU1VSRV9PUEVOXCJdID0gNTBdID0gXCJESVNDTE9TVVJFX09QRU5cIjtcclxuICAgICAgICBMSVNUX1NUWUxFX1RZUEVbTElTVF9TVFlMRV9UWVBFW1wiRElTQ0xPU1VSRV9DTE9TRURcIl0gPSA1MV0gPSBcIkRJU0NMT1NVUkVfQ0xPU0VEXCI7XHJcbiAgICB9KShMSVNUX1NUWUxFX1RZUEUgfHwgKExJU1RfU1RZTEVfVFlQRSA9IHt9KSk7XHJcbiAgICB2YXIgbGlzdFN0eWxlVHlwZSA9IHtcclxuICAgICAgICBuYW1lOiAnbGlzdC1zdHlsZS10eXBlJyxcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICdub25lJyxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLklERU5UX1ZBTFVFLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodHlwZSkge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2Rpc2MnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuRElTQztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2NpcmNsZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5DSVJDTEU7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdzcXVhcmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuU1FVQVJFO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGVjaW1hbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5ERUNJTUFMO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnY2prLWRlY2ltYWwnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuQ0pLX0RFQ0lNQUw7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkZWNpbWFsLWxlYWRpbmctemVybyc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5ERUNJTUFMX0xFQURJTkdfWkVSTztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2xvd2VyLXJvbWFuJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkxPV0VSX1JPTUFOO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAndXBwZXItcm9tYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuVVBQRVJfUk9NQU47XHJcbiAgICAgICAgICAgICAgICBjYXNlICdsb3dlci1ncmVlayc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5MT1dFUl9HUkVFSztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2xvd2VyLWFscGhhJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkxPV0VSX0FMUEhBO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAndXBwZXItYWxwaGEnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuVVBQRVJfQUxQSEE7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdhcmFiaWMtaW5kaWMnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuQVJBQklDX0lORElDO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnYXJtZW5pYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuQVJNRU5JQU47XHJcbiAgICAgICAgICAgICAgICBjYXNlICdiZW5nYWxpJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkJFTkdBTEk7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdjYW1ib2RpYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuQ0FNQk9ESUFOO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnY2prLWVhcnRobHktYnJhbmNoJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkNKS19FQVJUSExZX0JSQU5DSDtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2Nqay1oZWF2ZW5seS1zdGVtJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkNKS19IRUFWRU5MWV9TVEVNO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnY2prLWlkZW9ncmFwaGljJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkNKS19JREVPR1JBUEhJQztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2RldmFuYWdhcmknOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuREVWQU5BR0FSSTtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2V0aGlvcGljLW51bWVyaWMnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuRVRISU9QSUNfTlVNRVJJQztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2dlb3JnaWFuJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkdFT1JHSUFOO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZ3VqYXJhdGknOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuR1VKQVJBVEk7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdndXJtdWtoaSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5HVVJNVUtISTtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2hlYnJldyc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5IRUJSRVc7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdoaXJhZ2FuYSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5ISVJBR0FOQTtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2hpcmFnYW5hLWlyb2hhJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkhJUkFHQU5BX0lST0hBO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnamFwYW5lc2UtZm9ybWFsJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkpBUEFORVNFX0ZPUk1BTDtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2phcGFuZXNlLWluZm9ybWFsJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkpBUEFORVNFX0lORk9STUFMO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAna2FubmFkYSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5LQU5OQURBO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAna2F0YWthbmEnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuS0FUQUtBTkE7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdrYXRha2FuYS1pcm9oYSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5LQVRBS0FOQV9JUk9IQTtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2tobWVyJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLktITUVSO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAna29yZWFuLWhhbmd1bC1mb3JtYWwnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuS09SRUFOX0hBTkdVTF9GT1JNQUw7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdrb3JlYW4taGFuamEtZm9ybWFsJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLktPUkVBTl9IQU5KQV9GT1JNQUw7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdrb3JlYW4taGFuamEtaW5mb3JtYWwnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuS09SRUFOX0hBTkpBX0lORk9STUFMO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnbGFvJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkxBTztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2xvd2VyLWFybWVuaWFuJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLkxPV0VSX0FSTUVOSUFOO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnbWFsYXlhbGFtJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLk1BTEFZQUxBTTtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ21vbmdvbGlhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5NT05HT0xJQU47XHJcbiAgICAgICAgICAgICAgICBjYXNlICdteWFubWFyJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLk1ZQU5NQVI7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdvcml5YSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5PUklZQTtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3BlcnNpYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuUEVSU0lBTjtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3NpbXAtY2hpbmVzZS1mb3JtYWwnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuU0lNUF9DSElORVNFX0ZPUk1BTDtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3NpbXAtY2hpbmVzZS1pbmZvcm1hbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5TSU1QX0NISU5FU0VfSU5GT1JNQUw7XHJcbiAgICAgICAgICAgICAgICBjYXNlICd0YW1pbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5UQU1JTDtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3RlbHVndSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5URUxVR1U7XHJcbiAgICAgICAgICAgICAgICBjYXNlICd0aGFpJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLlRIQUk7XHJcbiAgICAgICAgICAgICAgICBjYXNlICd0aWJldGFuJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLlRJQkVUQU47XHJcbiAgICAgICAgICAgICAgICBjYXNlICd0cmFkLWNoaW5lc2UtZm9ybWFsJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTElTVF9TVFlMRV9UWVBFLlRSQURfQ0hJTkVTRV9GT1JNQUw7XHJcbiAgICAgICAgICAgICAgICBjYXNlICd0cmFkLWNoaW5lc2UtaW5mb3JtYWwnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuVFJBRF9DSElORVNFX0lORk9STUFMO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAndXBwZXItYXJtZW5pYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuVVBQRVJfQVJNRU5JQU47XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkaXNjbG9zdXJlLW9wZW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuRElTQ0xPU1VSRV9PUEVOO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGlzY2xvc3VyZS1jbG9zZWQnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBMSVNUX1NUWUxFX1RZUEUuRElTQ0xPU1VSRV9DTE9TRUQ7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdub25lJzpcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExJU1RfU1RZTEVfVFlQRS5OT05FO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBtYXJnaW5Gb3JTaWRlID0gZnVuY3Rpb24gKHNpZGUpIHsgcmV0dXJuICh7XHJcbiAgICAgICAgbmFtZTogXCJtYXJnaW4tXCIgKyBzaWRlLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJzAnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuVE9LRU5fVkFMVUVcclxuICAgIH0pOyB9O1xyXG4gICAgdmFyIG1hcmdpblRvcCA9IG1hcmdpbkZvclNpZGUoJ3RvcCcpO1xyXG4gICAgdmFyIG1hcmdpblJpZ2h0ID0gbWFyZ2luRm9yU2lkZSgncmlnaHQnKTtcclxuICAgIHZhciBtYXJnaW5Cb3R0b20gPSBtYXJnaW5Gb3JTaWRlKCdib3R0b20nKTtcclxuICAgIHZhciBtYXJnaW5MZWZ0ID0gbWFyZ2luRm9yU2lkZSgnbGVmdCcpO1xuXG4gICAgdmFyIE9WRVJGTE9XO1xyXG4gICAgKGZ1bmN0aW9uIChPVkVSRkxPVykge1xyXG4gICAgICAgIE9WRVJGTE9XW09WRVJGTE9XW1wiVklTSUJMRVwiXSA9IDBdID0gXCJWSVNJQkxFXCI7XHJcbiAgICAgICAgT1ZFUkZMT1dbT1ZFUkZMT1dbXCJISURERU5cIl0gPSAxXSA9IFwiSElEREVOXCI7XHJcbiAgICAgICAgT1ZFUkZMT1dbT1ZFUkZMT1dbXCJTQ1JPTExcIl0gPSAyXSA9IFwiU0NST0xMXCI7XHJcbiAgICAgICAgT1ZFUkZMT1dbT1ZFUkZMT1dbXCJBVVRPXCJdID0gM10gPSBcIkFVVE9cIjtcclxuICAgIH0pKE9WRVJGTE9XIHx8IChPVkVSRkxPVyA9IHt9KSk7XHJcbiAgICB2YXIgb3ZlcmZsb3cgPSB7XHJcbiAgICAgICAgbmFtZTogJ292ZXJmbG93JyxcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICd2aXNpYmxlJyxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLkxJU1QsXHJcbiAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh0b2tlbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRva2Vucy5maWx0ZXIoaXNJZGVudFRva2VuKS5tYXAoZnVuY3Rpb24gKG92ZXJmbG93KSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKG92ZXJmbG93LnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaGlkZGVuJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9WRVJGTE9XLkhJRERFTjtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdzY3JvbGwnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT1ZFUkZMT1cuU0NST0xMO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2F1dG8nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT1ZFUkZMT1cuQVVUTztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICd2aXNpYmxlJzpcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT1ZFUkZMT1cuVklTSUJMRTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBPVkVSRkxPV19XUkFQO1xyXG4gICAgKGZ1bmN0aW9uIChPVkVSRkxPV19XUkFQKSB7XHJcbiAgICAgICAgT1ZFUkZMT1dfV1JBUFtcIk5PUk1BTFwiXSA9IFwibm9ybWFsXCI7XHJcbiAgICAgICAgT1ZFUkZMT1dfV1JBUFtcIkJSRUFLX1dPUkRcIl0gPSBcImJyZWFrLXdvcmRcIjtcclxuICAgIH0pKE9WRVJGTE9XX1dSQVAgfHwgKE9WRVJGTE9XX1dSQVAgPSB7fSkpO1xyXG4gICAgdmFyIG92ZXJmbG93V3JhcCA9IHtcclxuICAgICAgICBuYW1lOiAnb3ZlcmZsb3ctd3JhcCcsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnbm9ybWFsJyxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLklERU5UX1ZBTFVFLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAob3ZlcmZsb3cpIHtcclxuICAgICAgICAgICAgc3dpdGNoIChvdmVyZmxvdykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnYnJlYWstd29yZCc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9WRVJGTE9XX1dSQVAuQlJFQUtfV09SRDtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ25vcm1hbCc6XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBPVkVSRkxPV19XUkFQLk5PUk1BTDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XG5cbiAgICB2YXIgcGFkZGluZ0ZvclNpZGUgPSBmdW5jdGlvbiAoc2lkZSkgeyByZXR1cm4gKHtcclxuICAgICAgICBuYW1lOiBcInBhZGRpbmctXCIgKyBzaWRlLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJzAnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuVFlQRV9WQUxVRSxcclxuICAgICAgICBmb3JtYXQ6ICdsZW5ndGgtcGVyY2VudGFnZSdcclxuICAgIH0pOyB9O1xyXG4gICAgdmFyIHBhZGRpbmdUb3AgPSBwYWRkaW5nRm9yU2lkZSgndG9wJyk7XHJcbiAgICB2YXIgcGFkZGluZ1JpZ2h0ID0gcGFkZGluZ0ZvclNpZGUoJ3JpZ2h0Jyk7XHJcbiAgICB2YXIgcGFkZGluZ0JvdHRvbSA9IHBhZGRpbmdGb3JTaWRlKCdib3R0b20nKTtcclxuICAgIHZhciBwYWRkaW5nTGVmdCA9IHBhZGRpbmdGb3JTaWRlKCdsZWZ0Jyk7XG5cbiAgICB2YXIgVEVYVF9BTElHTjtcclxuICAgIChmdW5jdGlvbiAoVEVYVF9BTElHTikge1xyXG4gICAgICAgIFRFWFRfQUxJR05bVEVYVF9BTElHTltcIkxFRlRcIl0gPSAwXSA9IFwiTEVGVFwiO1xyXG4gICAgICAgIFRFWFRfQUxJR05bVEVYVF9BTElHTltcIkNFTlRFUlwiXSA9IDFdID0gXCJDRU5URVJcIjtcclxuICAgICAgICBURVhUX0FMSUdOW1RFWFRfQUxJR05bXCJSSUdIVFwiXSA9IDJdID0gXCJSSUdIVFwiO1xyXG4gICAgfSkoVEVYVF9BTElHTiB8fCAoVEVYVF9BTElHTiA9IHt9KSk7XHJcbiAgICB2YXIgdGV4dEFsaWduID0ge1xyXG4gICAgICAgIG5hbWU6ICd0ZXh0LWFsaWduJyxcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICdsZWZ0JyxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLklERU5UX1ZBTFVFLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodGV4dEFsaWduKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dEFsaWduKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRFWFRfQUxJR04uUklHSFQ7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdjZW50ZXInOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnanVzdGlmeSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRFWFRfQUxJR04uQ0VOVEVSO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBURVhUX0FMSUdOLkxFRlQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xuXG4gICAgdmFyIFBPU0lUSU9OO1xyXG4gICAgKGZ1bmN0aW9uIChQT1NJVElPTikge1xyXG4gICAgICAgIFBPU0lUSU9OW1BPU0lUSU9OW1wiU1RBVElDXCJdID0gMF0gPSBcIlNUQVRJQ1wiO1xyXG4gICAgICAgIFBPU0lUSU9OW1BPU0lUSU9OW1wiUkVMQVRJVkVcIl0gPSAxXSA9IFwiUkVMQVRJVkVcIjtcclxuICAgICAgICBQT1NJVElPTltQT1NJVElPTltcIkFCU09MVVRFXCJdID0gMl0gPSBcIkFCU09MVVRFXCI7XHJcbiAgICAgICAgUE9TSVRJT05bUE9TSVRJT05bXCJGSVhFRFwiXSA9IDNdID0gXCJGSVhFRFwiO1xyXG4gICAgICAgIFBPU0lUSU9OW1BPU0lUSU9OW1wiU1RJQ0tZXCJdID0gNF0gPSBcIlNUSUNLWVwiO1xyXG4gICAgfSkoUE9TSVRJT04gfHwgKFBPU0lUSU9OID0ge30pKTtcclxuICAgIHZhciBwb3NpdGlvbiA9IHtcclxuICAgICAgICBuYW1lOiAncG9zaXRpb24nLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ3N0YXRpYycsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5JREVOVF9WQUxVRSxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAocG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3JlbGF0aXZlJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUE9TSVRJT04uUkVMQVRJVkU7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdhYnNvbHV0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBPU0lUSU9OLkFCU09MVVRFO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZml4ZWQnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQT1NJVElPTi5GSVhFRDtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0aWNreSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBPU0lUSU9OLlNUSUNLWTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gUE9TSVRJT04uU1RBVElDO1xyXG4gICAgICAgIH1cclxuICAgIH07XG5cbiAgICB2YXIgdGV4dFNoYWRvdyA9IHtcclxuICAgICAgICBuYW1lOiAndGV4dC1zaGFkb3cnLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ25vbmUnLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLkxJU1QsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHRva2Vucykge1xyXG4gICAgICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMSAmJiBpc0lkZW50V2l0aFZhbHVlKHRva2Vuc1swXSwgJ25vbmUnKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUZ1bmN0aW9uQXJncyh0b2tlbnMpLm1hcChmdW5jdGlvbiAodmFsdWVzKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgc2hhZG93ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBDT0xPUlMuVFJBTlNQQVJFTlQsXHJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogWkVST19MRU5HVEgsXHJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WTogWkVST19MRU5HVEgsXHJcbiAgICAgICAgICAgICAgICAgICAgYmx1cjogWkVST19MRU5HVEhcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB2YXIgYyA9IDA7XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0b2tlbiA9IHZhbHVlc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNMZW5ndGgodG9rZW4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3cub2Zmc2V0WCA9IHRva2VuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvdy5vZmZzZXRZID0gdG9rZW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3cuYmx1ciA9IHRva2VuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGMrKztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvdy5jb2xvciA9IGNvbG9yLnBhcnNlKHRva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc2hhZG93O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xuXG4gICAgdmFyIFRFWFRfVFJBTlNGT1JNO1xyXG4gICAgKGZ1bmN0aW9uIChURVhUX1RSQU5TRk9STSkge1xyXG4gICAgICAgIFRFWFRfVFJBTlNGT1JNW1RFWFRfVFJBTlNGT1JNW1wiTk9ORVwiXSA9IDBdID0gXCJOT05FXCI7XHJcbiAgICAgICAgVEVYVF9UUkFOU0ZPUk1bVEVYVF9UUkFOU0ZPUk1bXCJMT1dFUkNBU0VcIl0gPSAxXSA9IFwiTE9XRVJDQVNFXCI7XHJcbiAgICAgICAgVEVYVF9UUkFOU0ZPUk1bVEVYVF9UUkFOU0ZPUk1bXCJVUFBFUkNBU0VcIl0gPSAyXSA9IFwiVVBQRVJDQVNFXCI7XHJcbiAgICAgICAgVEVYVF9UUkFOU0ZPUk1bVEVYVF9UUkFOU0ZPUk1bXCJDQVBJVEFMSVpFXCJdID0gM10gPSBcIkNBUElUQUxJWkVcIjtcclxuICAgIH0pKFRFWFRfVFJBTlNGT1JNIHx8IChURVhUX1RSQU5TRk9STSA9IHt9KSk7XHJcbiAgICB2YXIgdGV4dFRyYW5zZm9ybSA9IHtcclxuICAgICAgICBuYW1lOiAndGV4dC10cmFuc2Zvcm0nLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ25vbmUnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuSURFTlRfVkFMVUUsXHJcbiAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh0ZXh0VHJhbnNmb3JtKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dFRyYW5zZm9ybSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAndXBwZXJjYXNlJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gVEVYVF9UUkFOU0ZPUk0uVVBQRVJDQVNFO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnbG93ZXJjYXNlJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gVEVYVF9UUkFOU0ZPUk0uTE9XRVJDQVNFO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnY2FwaXRhbGl6ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRFWFRfVFJBTlNGT1JNLkNBUElUQUxJWkU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIFRFWFRfVFJBTlNGT1JNLk5PTkU7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciB0cmFuc2Zvcm0gPSB7XHJcbiAgICAgICAgbmFtZTogJ3RyYW5zZm9ybScsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnbm9uZScsXHJcbiAgICAgICAgcHJlZml4OiB0cnVlLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLlZBTFVFLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW4pIHtcclxuICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5JREVOVF9UT0tFTiAmJiB0b2tlbi52YWx1ZSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkZVTkNUSU9OKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdHJhbnNmb3JtRnVuY3Rpb24gPSBTVVBQT1JURURfVFJBTlNGT1JNX0ZVTkNUSU9OU1t0b2tlbi5uYW1lXTtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtRnVuY3Rpb24gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGluZyB0byBwYXJzZSBhbiB1bnN1cHBvcnRlZCB0cmFuc2Zvcm0gZnVuY3Rpb24gXFxcIlwiICsgdG9rZW4ubmFtZSArIFwiXFxcIlwiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1GdW5jdGlvbih0b2tlbi52YWx1ZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgbWF0cml4ID0gZnVuY3Rpb24gKGFyZ3MpIHtcclxuICAgICAgICB2YXIgdmFsdWVzID0gYXJncy5maWx0ZXIoZnVuY3Rpb24gKGFyZykgeyByZXR1cm4gYXJnLnR5cGUgPT09IFRva2VuVHlwZS5OVU1CRVJfVE9LRU47IH0pLm1hcChmdW5jdGlvbiAoYXJnKSB7IHJldHVybiBhcmcubnVtYmVyOyB9KTtcclxuICAgICAgICByZXR1cm4gdmFsdWVzLmxlbmd0aCA9PT0gNiA/IHZhbHVlcyA6IG51bGw7XHJcbiAgICB9O1xyXG4gICAgLy8gZG9lc24ndCBzdXBwb3J0IDNEIHRyYW5zZm9ybXMgYXQgdGhlIG1vbWVudFxyXG4gICAgdmFyIG1hdHJpeDNkID0gZnVuY3Rpb24gKGFyZ3MpIHtcclxuICAgICAgICB2YXIgdmFsdWVzID0gYXJncy5maWx0ZXIoZnVuY3Rpb24gKGFyZykgeyByZXR1cm4gYXJnLnR5cGUgPT09IFRva2VuVHlwZS5OVU1CRVJfVE9LRU47IH0pLm1hcChmdW5jdGlvbiAoYXJnKSB7IHJldHVybiBhcmcubnVtYmVyOyB9KTtcclxuICAgICAgICB2YXIgYTEgPSB2YWx1ZXNbMF0sIGIxID0gdmFsdWVzWzFdLCBfYSA9IHZhbHVlc1syXSwgX2IgPSB2YWx1ZXNbM10sIGEyID0gdmFsdWVzWzRdLCBiMiA9IHZhbHVlc1s1XSwgX2MgPSB2YWx1ZXNbNl0sIF9kID0gdmFsdWVzWzddLCBfZSA9IHZhbHVlc1s4XSwgX2YgPSB2YWx1ZXNbOV0sIF9nID0gdmFsdWVzWzEwXSwgX2ggPSB2YWx1ZXNbMTFdLCBhNCA9IHZhbHVlc1sxMl0sIGI0ID0gdmFsdWVzWzEzXSwgX2ogPSB2YWx1ZXNbMTRdLCBfayA9IHZhbHVlc1sxNV07XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5sZW5ndGggPT09IDE2ID8gW2ExLCBiMSwgYTIsIGIyLCBhNCwgYjRdIDogbnVsbDtcclxuICAgIH07XHJcbiAgICB2YXIgU1VQUE9SVEVEX1RSQU5TRk9STV9GVU5DVElPTlMgPSB7XHJcbiAgICAgICAgbWF0cml4OiBtYXRyaXgsXHJcbiAgICAgICAgbWF0cml4M2Q6IG1hdHJpeDNkXHJcbiAgICB9O1xuXG4gICAgdmFyIERFRkFVTFRfVkFMVUUgPSB7XHJcbiAgICAgICAgdHlwZTogVG9rZW5UeXBlLlBFUkNFTlRBR0VfVE9LRU4sXHJcbiAgICAgICAgbnVtYmVyOiA1MCxcclxuICAgICAgICBmbGFnczogRkxBR19JTlRFR0VSXHJcbiAgICB9O1xyXG4gICAgdmFyIERFRkFVTFQgPSBbREVGQVVMVF9WQUxVRSwgREVGQVVMVF9WQUxVRV07XHJcbiAgICB2YXIgdHJhbnNmb3JtT3JpZ2luID0ge1xyXG4gICAgICAgIG5hbWU6ICd0cmFuc2Zvcm0tb3JpZ2luJyxcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICc1MCUgNTAlJyxcclxuICAgICAgICBwcmVmaXg6IHRydWUsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuTElTVCxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHRva2Vucykge1xyXG4gICAgICAgICAgICB2YXIgb3JpZ2lucyA9IHRva2Vucy5maWx0ZXIoaXNMZW5ndGhQZXJjZW50YWdlKTtcclxuICAgICAgICAgICAgaWYgKG9yaWdpbnMubGVuZ3RoICE9PSAyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gREVGQVVMVDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gW29yaWdpbnNbMF0sIG9yaWdpbnNbMV1dO1xyXG4gICAgICAgIH1cclxuICAgIH07XG5cbiAgICB2YXIgVklTSUJJTElUWTtcclxuICAgIChmdW5jdGlvbiAoVklTSUJJTElUWSkge1xyXG4gICAgICAgIFZJU0lCSUxJVFlbVklTSUJJTElUWVtcIlZJU0lCTEVcIl0gPSAwXSA9IFwiVklTSUJMRVwiO1xyXG4gICAgICAgIFZJU0lCSUxJVFlbVklTSUJJTElUWVtcIkhJRERFTlwiXSA9IDFdID0gXCJISURERU5cIjtcclxuICAgICAgICBWSVNJQklMSVRZW1ZJU0lCSUxJVFlbXCJDT0xMQVBTRVwiXSA9IDJdID0gXCJDT0xMQVBTRVwiO1xyXG4gICAgfSkoVklTSUJJTElUWSB8fCAoVklTSUJJTElUWSA9IHt9KSk7XHJcbiAgICB2YXIgdmlzaWJpbGl0eSA9IHtcclxuICAgICAgICBuYW1lOiAndmlzaWJsZScsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnbm9uZScsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5JREVOVF9WQUxVRSxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHZpc2liaWxpdHkpIHtcclxuICAgICAgICAgICAgc3dpdGNoICh2aXNpYmlsaXR5KSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdoaWRkZW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBWSVNJQklMSVRZLkhJRERFTjtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbGxhcHNlJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gVklTSUJJTElUWS5DT0xMQVBTRTtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3Zpc2libGUnOlxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gVklTSUJJTElUWS5WSVNJQkxFO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBXT1JEX0JSRUFLO1xyXG4gICAgKGZ1bmN0aW9uIChXT1JEX0JSRUFLKSB7XHJcbiAgICAgICAgV09SRF9CUkVBS1tcIk5PUk1BTFwiXSA9IFwibm9ybWFsXCI7XHJcbiAgICAgICAgV09SRF9CUkVBS1tcIkJSRUFLX0FMTFwiXSA9IFwiYnJlYWstYWxsXCI7XHJcbiAgICAgICAgV09SRF9CUkVBS1tcIktFRVBfQUxMXCJdID0gXCJrZWVwLWFsbFwiO1xyXG4gICAgfSkoV09SRF9CUkVBSyB8fCAoV09SRF9CUkVBSyA9IHt9KSk7XHJcbiAgICB2YXIgd29yZEJyZWFrID0ge1xyXG4gICAgICAgIG5hbWU6ICd3b3JkLWJyZWFrJyxcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICdub3JtYWwnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuSURFTlRfVkFMVUUsXHJcbiAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh3b3JkQnJlYWspIHtcclxuICAgICAgICAgICAgc3dpdGNoICh3b3JkQnJlYWspIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2JyZWFrLWFsbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdPUkRfQlJFQUsuQlJFQUtfQUxMO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAna2VlcC1hbGwnOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBXT1JEX0JSRUFLLktFRVBfQUxMO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnbm9ybWFsJzpcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFdPUkRfQlJFQUsuTk9STUFMO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciB6SW5kZXggPSB7XHJcbiAgICAgICAgbmFtZTogJ3otaW5kZXgnLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ2F1dG8nLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuVkFMVUUsXHJcbiAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLklERU5UX1RPS0VOKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBhdXRvOiB0cnVlLCBvcmRlcjogMCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpc051bWJlclRva2VuKHRva2VuKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgYXV0bzogZmFsc2UsIG9yZGVyOiB0b2tlbi5udW1iZXIgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHotaW5kZXggbnVtYmVyIHBhcnNlZFwiKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xuXG4gICAgdmFyIG9wYWNpdHkgPSB7XHJcbiAgICAgICAgbmFtZTogJ29wYWNpdHknLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJzEnLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLlZBTFVFLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgICAgICAgICBpZiAoaXNOdW1iZXJUb2tlbih0b2tlbikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbi5udW1iZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciB0ZXh0RGVjb3JhdGlvbkNvbG9yID0ge1xyXG4gICAgICAgIG5hbWU6IFwidGV4dC1kZWNvcmF0aW9uLWNvbG9yXCIsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuVFlQRV9WQUxVRSxcclxuICAgICAgICBmb3JtYXQ6ICdjb2xvcidcclxuICAgIH07XG5cbiAgICB2YXIgdGV4dERlY29yYXRpb25MaW5lID0ge1xyXG4gICAgICAgIG5hbWU6ICd0ZXh0LWRlY29yYXRpb24tbGluZScsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnbm9uZScsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5MSVNULFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0b2tlbnNcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIoaXNJZGVudFRva2VuKVxyXG4gICAgICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAodG9rZW4pIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICd1bmRlcmxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMSAvKiBVTkRFUkxJTkUgKi87XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb3ZlcmxpbmUnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMiAvKiBPVkVSTElORSAqLztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdsaW5lLXRocm91Z2gnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMyAvKiBMSU5FX1RIUk9VR0ggKi87XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm9uZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA0IC8qIEJMSU5LICovO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDAgLyogTk9ORSAqLztcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKGxpbmUpIHsgcmV0dXJuIGxpbmUgIT09IDAgLyogTk9ORSAqLzsgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBmb250RmFtaWx5ID0ge1xyXG4gICAgICAgIG5hbWU6IFwiZm9udC1mYW1pbHlcIixcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICcnLFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuTElTVCxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHRva2Vucykge1xyXG4gICAgICAgICAgICByZXR1cm4gdG9rZW5zLmZpbHRlcihpc1N0cmluZ1Rva2VuJDEpLm1hcChmdW5jdGlvbiAodG9rZW4pIHsgcmV0dXJuIHRva2VuLnZhbHVlOyB9KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdmFyIGlzU3RyaW5nVG9rZW4kMSA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgICAgIHJldHVybiB0b2tlbi50eXBlID09PSBUb2tlblR5cGUuU1RSSU5HX1RPS0VOIHx8IHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5JREVOVF9UT0tFTjtcclxuICAgIH07XG5cbiAgICB2YXIgZm9udFNpemUgPSB7XHJcbiAgICAgICAgbmFtZTogXCJmb250LXNpemVcIixcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICcwJyxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLlRZUEVfVkFMVUUsXHJcbiAgICAgICAgZm9ybWF0OiAnbGVuZ3RoJ1xyXG4gICAgfTtcblxuICAgIHZhciBmb250V2VpZ2h0ID0ge1xyXG4gICAgICAgIG5hbWU6ICdmb250LXdlaWdodCcsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnbm9ybWFsJyxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5WQUxVRSxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW4pIHtcclxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyVG9rZW4odG9rZW4pKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4ubnVtYmVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpc0lkZW50VG9rZW4odG9rZW4pKSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYm9sZCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA3MDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbm9ybWFsJzpcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNDAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiA0MDA7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBmb250VmFyaWFudCA9IHtcclxuICAgICAgICBuYW1lOiAnZm9udC12YXJpYW50JyxcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICdub25lJyxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5MSVNULFxyXG4gICAgICAgIHByZWZpeDogZmFsc2UsXHJcbiAgICAgICAgcGFyc2U6IGZ1bmN0aW9uICh0b2tlbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRva2Vucy5maWx0ZXIoaXNJZGVudFRva2VuKS5tYXAoZnVuY3Rpb24gKHRva2VuKSB7IHJldHVybiB0b2tlbi52YWx1ZTsgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBGT05UX1NUWUxFO1xyXG4gICAgKGZ1bmN0aW9uIChGT05UX1NUWUxFKSB7XHJcbiAgICAgICAgRk9OVF9TVFlMRVtcIk5PUk1BTFwiXSA9IFwibm9ybWFsXCI7XHJcbiAgICAgICAgRk9OVF9TVFlMRVtcIklUQUxJQ1wiXSA9IFwiaXRhbGljXCI7XHJcbiAgICAgICAgRk9OVF9TVFlMRVtcIk9CTElRVUVcIl0gPSBcIm9ibGlxdWVcIjtcclxuICAgIH0pKEZPTlRfU1RZTEUgfHwgKEZPTlRfU1RZTEUgPSB7fSkpO1xyXG4gICAgdmFyIGZvbnRTdHlsZSA9IHtcclxuICAgICAgICBuYW1lOiAnZm9udC1zdHlsZScsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnbm9ybWFsJyxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLklERU5UX1ZBTFVFLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAob3ZlcmZsb3cpIHtcclxuICAgICAgICAgICAgc3dpdGNoIChvdmVyZmxvdykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnb2JsaXF1ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZPTlRfU1RZTEUuT0JMSVFVRTtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2l0YWxpYyc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZPTlRfU1RZTEUuSVRBTElDO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnbm9ybWFsJzpcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZPTlRfU1RZTEUuTk9STUFMO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBjb250YWlucyA9IGZ1bmN0aW9uIChiaXQsIHZhbHVlKSB7IHJldHVybiAoYml0ICYgdmFsdWUpICE9PSAwOyB9O1xuXG4gICAgdmFyIGNvbnRlbnQgPSB7XHJcbiAgICAgICAgbmFtZTogJ2NvbnRlbnQnLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ25vbmUnLFxyXG4gICAgICAgIHR5cGU6IFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLkxJU1QsXHJcbiAgICAgICAgcHJlZml4OiBmYWxzZSxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHRva2Vucykge1xyXG4gICAgICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBmaXJzdCA9IHRva2Vuc1swXTtcclxuICAgICAgICAgICAgaWYgKGZpcnN0LnR5cGUgPT09IFRva2VuVHlwZS5JREVOVF9UT0tFTiAmJiBmaXJzdC52YWx1ZSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRva2VucztcclxuICAgICAgICB9XHJcbiAgICB9O1xuXG4gICAgdmFyIGNvdW50ZXJJbmNyZW1lbnQgPSB7XHJcbiAgICAgICAgbmFtZTogJ2NvdW50ZXItaW5jcmVtZW50JyxcclxuICAgICAgICBpbml0aWFsVmFsdWU6ICdub25lJyxcclxuICAgICAgICBwcmVmaXg6IHRydWUsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuTElTVCxcclxuICAgICAgICBwYXJzZTogZnVuY3Rpb24gKHRva2Vucykge1xyXG4gICAgICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGZpcnN0ID0gdG9rZW5zWzBdO1xyXG4gICAgICAgICAgICBpZiAoZmlyc3QudHlwZSA9PT0gVG9rZW5UeXBlLklERU5UX1RPS0VOICYmIGZpcnN0LnZhbHVlID09PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBpbmNyZW1lbnRzID0gW107XHJcbiAgICAgICAgICAgIHZhciBmaWx0ZXJlZCA9IHRva2Vucy5maWx0ZXIobm9uV2hpdGVTcGFjZSk7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsdGVyZWQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHZhciBjb3VudGVyID0gZmlsdGVyZWRbaV07XHJcbiAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IGZpbHRlcmVkW2kgKyAxXTtcclxuICAgICAgICAgICAgICAgIGlmIChjb3VudGVyLnR5cGUgPT09IFRva2VuVHlwZS5JREVOVF9UT0tFTikge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmNyZW1lbnQgPSBuZXh0ICYmIGlzTnVtYmVyVG9rZW4obmV4dCkgPyBuZXh0Lm51bWJlciA6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50cy5wdXNoKHsgY291bnRlcjogY291bnRlci52YWx1ZSwgaW5jcmVtZW50OiBpbmNyZW1lbnQgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGluY3JlbWVudHM7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBjb3VudGVyUmVzZXQgPSB7XHJcbiAgICAgICAgbmFtZTogJ2NvdW50ZXItcmVzZXQnLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ25vbmUnLFxyXG4gICAgICAgIHByZWZpeDogdHJ1ZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5MSVNULFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHJlc2V0cyA9IFtdO1xyXG4gICAgICAgICAgICB2YXIgZmlsdGVyZWQgPSB0b2tlbnMuZmlsdGVyKG5vbldoaXRlU3BhY2UpO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbHRlcmVkLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY291bnRlciA9IGZpbHRlcmVkW2ldO1xyXG4gICAgICAgICAgICAgICAgdmFyIG5leHQgPSBmaWx0ZXJlZFtpICsgMV07XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNJZGVudFRva2VuKGNvdW50ZXIpICYmIGNvdW50ZXIudmFsdWUgIT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXNldCA9IG5leHQgJiYgaXNOdW1iZXJUb2tlbihuZXh0KSA/IG5leHQubnVtYmVyIDogMDtcclxuICAgICAgICAgICAgICAgICAgICByZXNldHMucHVzaCh7IGNvdW50ZXI6IGNvdW50ZXIudmFsdWUsIHJlc2V0OiByZXNldCB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcmVzZXRzO1xyXG4gICAgICAgIH1cclxuICAgIH07XG5cbiAgICB2YXIgcXVvdGVzID0ge1xyXG4gICAgICAgIG5hbWU6ICdxdW90ZXMnLFxyXG4gICAgICAgIGluaXRpYWxWYWx1ZTogJ25vbmUnLFxyXG4gICAgICAgIHByZWZpeDogdHJ1ZSxcclxuICAgICAgICB0eXBlOiBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5MSVNULFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZmlyc3QgPSB0b2tlbnNbMF07XHJcbiAgICAgICAgICAgIGlmIChmaXJzdC50eXBlID09PSBUb2tlblR5cGUuSURFTlRfVE9LRU4gJiYgZmlyc3QudmFsdWUgPT09ICdub25lJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHF1b3RlcyA9IFtdO1xyXG4gICAgICAgICAgICB2YXIgZmlsdGVyZWQgPSB0b2tlbnMuZmlsdGVyKGlzU3RyaW5nVG9rZW4pO1xyXG4gICAgICAgICAgICBpZiAoZmlsdGVyZWQubGVuZ3RoICUgMiAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWx0ZXJlZC5sZW5ndGg7IGkgKz0gMikge1xyXG4gICAgICAgICAgICAgICAgdmFyIG9wZW5fMSA9IGZpbHRlcmVkW2ldLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgdmFyIGNsb3NlXzEgPSBmaWx0ZXJlZFtpICsgMV0udmFsdWU7XHJcbiAgICAgICAgICAgICAgICBxdW90ZXMucHVzaCh7IG9wZW46IG9wZW5fMSwgY2xvc2U6IGNsb3NlXzEgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHF1b3RlcztcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdmFyIGdldFF1b3RlID0gZnVuY3Rpb24gKHF1b3RlcywgZGVwdGgsIG9wZW4pIHtcclxuICAgICAgICBpZiAoIXF1b3Rlcykge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBxdW90ZSA9IHF1b3Rlc1tNYXRoLm1pbihkZXB0aCwgcXVvdGVzLmxlbmd0aCAtIDEpXTtcclxuICAgICAgICBpZiAoIXF1b3RlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9wZW4gPyBxdW90ZS5vcGVuIDogcXVvdGUuY2xvc2U7XHJcbiAgICB9O1xuXG4gICAgdmFyIGJveFNoYWRvdyA9IHtcclxuICAgICAgICBuYW1lOiAnYm94LXNoYWRvdycsXHJcbiAgICAgICAgaW5pdGlhbFZhbHVlOiAnbm9uZScsXHJcbiAgICAgICAgdHlwZTogUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuTElTVCxcclxuICAgICAgICBwcmVmaXg6IGZhbHNlLFxyXG4gICAgICAgIHBhcnNlOiBmdW5jdGlvbiAodG9rZW5zKSB7XHJcbiAgICAgICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09PSAxICYmIGlzSWRlbnRXaXRoVmFsdWUodG9rZW5zWzBdLCAnbm9uZScpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlRnVuY3Rpb25BcmdzKHRva2VucykubWFwKGZ1bmN0aW9uICh2YWx1ZXMpIHtcclxuICAgICAgICAgICAgICAgIHZhciBzaGFkb3cgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IDB4MDAwMDAwZmYsXHJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogWkVST19MRU5HVEgsXHJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WTogWkVST19MRU5HVEgsXHJcbiAgICAgICAgICAgICAgICAgICAgYmx1cjogWkVST19MRU5HVEgsXHJcbiAgICAgICAgICAgICAgICAgICAgc3ByZWFkOiBaRVJPX0xFTkdUSCxcclxuICAgICAgICAgICAgICAgICAgICBpbnNldDogZmFsc2VcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB2YXIgYyA9IDA7XHJcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0b2tlbiA9IHZhbHVlc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNJZGVudFdpdGhWYWx1ZSh0b2tlbiwgJ2luc2V0JykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93Lmluc2V0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaXNMZW5ndGgodG9rZW4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3cub2Zmc2V0WCA9IHRva2VuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvdy5vZmZzZXRZID0gdG9rZW47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA9PT0gMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93LmJsdXIgPSB0b2tlbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvdy5zcHJlYWQgPSB0b2tlbjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjKys7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3cuY29sb3IgPSBjb2xvci5wYXJzZSh0b2tlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNoYWRvdztcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcblxuICAgIHZhciBDU1NQYXJzZWREZWNsYXJhdGlvbiA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBDU1NQYXJzZWREZWNsYXJhdGlvbihkZWNsYXJhdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmRDbGlwID0gcGFyc2UoYmFja2dyb3VuZENsaXAsIGRlY2xhcmF0aW9uLmJhY2tncm91bmRDbGlwKTtcclxuICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSBwYXJzZShiYWNrZ3JvdW5kQ29sb3IsIGRlY2xhcmF0aW9uLmJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja2dyb3VuZEltYWdlID0gcGFyc2UoYmFja2dyb3VuZEltYWdlLCBkZWNsYXJhdGlvbi5iYWNrZ3JvdW5kSW1hZ2UpO1xyXG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmRPcmlnaW4gPSBwYXJzZShiYWNrZ3JvdW5kT3JpZ2luLCBkZWNsYXJhdGlvbi5iYWNrZ3JvdW5kT3JpZ2luKTtcclxuICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kUG9zaXRpb24gPSBwYXJzZShiYWNrZ3JvdW5kUG9zaXRpb24sIGRlY2xhcmF0aW9uLmJhY2tncm91bmRQb3NpdGlvbik7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja2dyb3VuZFJlcGVhdCA9IHBhcnNlKGJhY2tncm91bmRSZXBlYXQsIGRlY2xhcmF0aW9uLmJhY2tncm91bmRSZXBlYXQpO1xyXG4gICAgICAgICAgICB0aGlzLmJhY2tncm91bmRTaXplID0gcGFyc2UoYmFja2dyb3VuZFNpemUsIGRlY2xhcmF0aW9uLmJhY2tncm91bmRTaXplKTtcclxuICAgICAgICAgICAgdGhpcy5ib3JkZXJUb3BDb2xvciA9IHBhcnNlKGJvcmRlclRvcENvbG9yLCBkZWNsYXJhdGlvbi5ib3JkZXJUb3BDb2xvcik7XHJcbiAgICAgICAgICAgIHRoaXMuYm9yZGVyUmlnaHRDb2xvciA9IHBhcnNlKGJvcmRlclJpZ2h0Q29sb3IsIGRlY2xhcmF0aW9uLmJvcmRlclJpZ2h0Q29sb3IpO1xyXG4gICAgICAgICAgICB0aGlzLmJvcmRlckJvdHRvbUNvbG9yID0gcGFyc2UoYm9yZGVyQm90dG9tQ29sb3IsIGRlY2xhcmF0aW9uLmJvcmRlckJvdHRvbUNvbG9yKTtcclxuICAgICAgICAgICAgdGhpcy5ib3JkZXJMZWZ0Q29sb3IgPSBwYXJzZShib3JkZXJMZWZ0Q29sb3IsIGRlY2xhcmF0aW9uLmJvcmRlckxlZnRDb2xvcik7XHJcbiAgICAgICAgICAgIHRoaXMuYm9yZGVyVG9wTGVmdFJhZGl1cyA9IHBhcnNlKGJvcmRlclRvcExlZnRSYWRpdXMsIGRlY2xhcmF0aW9uLmJvcmRlclRvcExlZnRSYWRpdXMpO1xyXG4gICAgICAgICAgICB0aGlzLmJvcmRlclRvcFJpZ2h0UmFkaXVzID0gcGFyc2UoYm9yZGVyVG9wUmlnaHRSYWRpdXMsIGRlY2xhcmF0aW9uLmJvcmRlclRvcFJpZ2h0UmFkaXVzKTtcclxuICAgICAgICAgICAgdGhpcy5ib3JkZXJCb3R0b21SaWdodFJhZGl1cyA9IHBhcnNlKGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzLCBkZWNsYXJhdGlvbi5ib3JkZXJCb3R0b21SaWdodFJhZGl1cyk7XHJcbiAgICAgICAgICAgIHRoaXMuYm9yZGVyQm90dG9tTGVmdFJhZGl1cyA9IHBhcnNlKGJvcmRlckJvdHRvbUxlZnRSYWRpdXMsIGRlY2xhcmF0aW9uLmJvcmRlckJvdHRvbUxlZnRSYWRpdXMpO1xyXG4gICAgICAgICAgICB0aGlzLmJvcmRlclRvcFN0eWxlID0gcGFyc2UoYm9yZGVyVG9wU3R5bGUsIGRlY2xhcmF0aW9uLmJvcmRlclRvcFN0eWxlKTtcclxuICAgICAgICAgICAgdGhpcy5ib3JkZXJSaWdodFN0eWxlID0gcGFyc2UoYm9yZGVyUmlnaHRTdHlsZSwgZGVjbGFyYXRpb24uYm9yZGVyUmlnaHRTdHlsZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYm9yZGVyQm90dG9tU3R5bGUgPSBwYXJzZShib3JkZXJCb3R0b21TdHlsZSwgZGVjbGFyYXRpb24uYm9yZGVyQm90dG9tU3R5bGUpO1xyXG4gICAgICAgICAgICB0aGlzLmJvcmRlckxlZnRTdHlsZSA9IHBhcnNlKGJvcmRlckxlZnRTdHlsZSwgZGVjbGFyYXRpb24uYm9yZGVyTGVmdFN0eWxlKTtcclxuICAgICAgICAgICAgdGhpcy5ib3JkZXJUb3BXaWR0aCA9IHBhcnNlKGJvcmRlclRvcFdpZHRoLCBkZWNsYXJhdGlvbi5ib3JkZXJUb3BXaWR0aCk7XHJcbiAgICAgICAgICAgIHRoaXMuYm9yZGVyUmlnaHRXaWR0aCA9IHBhcnNlKGJvcmRlclJpZ2h0V2lkdGgsIGRlY2xhcmF0aW9uLmJvcmRlclJpZ2h0V2lkdGgpO1xyXG4gICAgICAgICAgICB0aGlzLmJvcmRlckJvdHRvbVdpZHRoID0gcGFyc2UoYm9yZGVyQm90dG9tV2lkdGgsIGRlY2xhcmF0aW9uLmJvcmRlckJvdHRvbVdpZHRoKTtcclxuICAgICAgICAgICAgdGhpcy5ib3JkZXJMZWZ0V2lkdGggPSBwYXJzZShib3JkZXJMZWZ0V2lkdGgsIGRlY2xhcmF0aW9uLmJvcmRlckxlZnRXaWR0aCk7XHJcbiAgICAgICAgICAgIHRoaXMuYm94U2hhZG93ID0gcGFyc2UoYm94U2hhZG93LCBkZWNsYXJhdGlvbi5ib3hTaGFkb3cpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbG9yID0gcGFyc2UoY29sb3IkMSwgZGVjbGFyYXRpb24uY29sb3IpO1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXkgPSBwYXJzZShkaXNwbGF5LCBkZWNsYXJhdGlvbi5kaXNwbGF5KTtcclxuICAgICAgICAgICAgdGhpcy5mbG9hdCA9IHBhcnNlKGZsb2F0LCBkZWNsYXJhdGlvbi5jc3NGbG9hdCk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9udEZhbWlseSA9IHBhcnNlKGZvbnRGYW1pbHksIGRlY2xhcmF0aW9uLmZvbnRGYW1pbHkpO1xyXG4gICAgICAgICAgICB0aGlzLmZvbnRTaXplID0gcGFyc2UoZm9udFNpemUsIGRlY2xhcmF0aW9uLmZvbnRTaXplKTtcclxuICAgICAgICAgICAgdGhpcy5mb250U3R5bGUgPSBwYXJzZShmb250U3R5bGUsIGRlY2xhcmF0aW9uLmZvbnRTdHlsZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9udFZhcmlhbnQgPSBwYXJzZShmb250VmFyaWFudCwgZGVjbGFyYXRpb24uZm9udFZhcmlhbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmZvbnRXZWlnaHQgPSBwYXJzZShmb250V2VpZ2h0LCBkZWNsYXJhdGlvbi5mb250V2VpZ2h0KTtcclxuICAgICAgICAgICAgdGhpcy5sZXR0ZXJTcGFjaW5nID0gcGFyc2UobGV0dGVyU3BhY2luZywgZGVjbGFyYXRpb24ubGV0dGVyU3BhY2luZyk7XHJcbiAgICAgICAgICAgIHRoaXMubGluZUJyZWFrID0gcGFyc2UobGluZUJyZWFrLCBkZWNsYXJhdGlvbi5saW5lQnJlYWspO1xyXG4gICAgICAgICAgICB0aGlzLmxpbmVIZWlnaHQgPSBwYXJzZShsaW5lSGVpZ2h0LCBkZWNsYXJhdGlvbi5saW5lSGVpZ2h0KTtcclxuICAgICAgICAgICAgdGhpcy5saXN0U3R5bGVJbWFnZSA9IHBhcnNlKGxpc3RTdHlsZUltYWdlLCBkZWNsYXJhdGlvbi5saXN0U3R5bGVJbWFnZSk7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdFN0eWxlUG9zaXRpb24gPSBwYXJzZShsaXN0U3R5bGVQb3NpdGlvbiwgZGVjbGFyYXRpb24ubGlzdFN0eWxlUG9zaXRpb24pO1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RTdHlsZVR5cGUgPSBwYXJzZShsaXN0U3R5bGVUeXBlLCBkZWNsYXJhdGlvbi5saXN0U3R5bGVUeXBlKTtcclxuICAgICAgICAgICAgdGhpcy5tYXJnaW5Ub3AgPSBwYXJzZShtYXJnaW5Ub3AsIGRlY2xhcmF0aW9uLm1hcmdpblRvcCk7XHJcbiAgICAgICAgICAgIHRoaXMubWFyZ2luUmlnaHQgPSBwYXJzZShtYXJnaW5SaWdodCwgZGVjbGFyYXRpb24ubWFyZ2luUmlnaHQpO1xyXG4gICAgICAgICAgICB0aGlzLm1hcmdpbkJvdHRvbSA9IHBhcnNlKG1hcmdpbkJvdHRvbSwgZGVjbGFyYXRpb24ubWFyZ2luQm90dG9tKTtcclxuICAgICAgICAgICAgdGhpcy5tYXJnaW5MZWZ0ID0gcGFyc2UobWFyZ2luTGVmdCwgZGVjbGFyYXRpb24ubWFyZ2luTGVmdCk7XHJcbiAgICAgICAgICAgIHRoaXMub3BhY2l0eSA9IHBhcnNlKG9wYWNpdHksIGRlY2xhcmF0aW9uLm9wYWNpdHkpO1xyXG4gICAgICAgICAgICB2YXIgb3ZlcmZsb3dUdXBsZSA9IHBhcnNlKG92ZXJmbG93LCBkZWNsYXJhdGlvbi5vdmVyZmxvdyk7XHJcbiAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dYID0gb3ZlcmZsb3dUdXBsZVswXTtcclxuICAgICAgICAgICAgdGhpcy5vdmVyZmxvd1kgPSBvdmVyZmxvd1R1cGxlW292ZXJmbG93VHVwbGUubGVuZ3RoID4gMSA/IDEgOiAwXTtcclxuICAgICAgICAgICAgdGhpcy5vdmVyZmxvd1dyYXAgPSBwYXJzZShvdmVyZmxvd1dyYXAsIGRlY2xhcmF0aW9uLm92ZXJmbG93V3JhcCk7XHJcbiAgICAgICAgICAgIHRoaXMucGFkZGluZ1RvcCA9IHBhcnNlKHBhZGRpbmdUb3AsIGRlY2xhcmF0aW9uLnBhZGRpbmdUb3ApO1xyXG4gICAgICAgICAgICB0aGlzLnBhZGRpbmdSaWdodCA9IHBhcnNlKHBhZGRpbmdSaWdodCwgZGVjbGFyYXRpb24ucGFkZGluZ1JpZ2h0KTtcclxuICAgICAgICAgICAgdGhpcy5wYWRkaW5nQm90dG9tID0gcGFyc2UocGFkZGluZ0JvdHRvbSwgZGVjbGFyYXRpb24ucGFkZGluZ0JvdHRvbSk7XHJcbiAgICAgICAgICAgIHRoaXMucGFkZGluZ0xlZnQgPSBwYXJzZShwYWRkaW5nTGVmdCwgZGVjbGFyYXRpb24ucGFkZGluZ0xlZnQpO1xyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gcGFyc2UocG9zaXRpb24sIGRlY2xhcmF0aW9uLnBvc2l0aW9uKTtcclxuICAgICAgICAgICAgdGhpcy50ZXh0QWxpZ24gPSBwYXJzZSh0ZXh0QWxpZ24sIGRlY2xhcmF0aW9uLnRleHRBbGlnbik7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dERlY29yYXRpb25Db2xvciA9IHBhcnNlKHRleHREZWNvcmF0aW9uQ29sb3IsIGRlY2xhcmF0aW9uLnRleHREZWNvcmF0aW9uQ29sb3IgfHwgZGVjbGFyYXRpb24uY29sb3IpO1xyXG4gICAgICAgICAgICB0aGlzLnRleHREZWNvcmF0aW9uTGluZSA9IHBhcnNlKHRleHREZWNvcmF0aW9uTGluZSwgZGVjbGFyYXRpb24udGV4dERlY29yYXRpb25MaW5lKTtcclxuICAgICAgICAgICAgdGhpcy50ZXh0U2hhZG93ID0gcGFyc2UodGV4dFNoYWRvdywgZGVjbGFyYXRpb24udGV4dFNoYWRvdyk7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dFRyYW5zZm9ybSA9IHBhcnNlKHRleHRUcmFuc2Zvcm0sIGRlY2xhcmF0aW9uLnRleHRUcmFuc2Zvcm0pO1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zZm9ybSA9IHBhcnNlKHRyYW5zZm9ybSwgZGVjbGFyYXRpb24udHJhbnNmb3JtKTtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1PcmlnaW4gPSBwYXJzZSh0cmFuc2Zvcm1PcmlnaW4sIGRlY2xhcmF0aW9uLnRyYW5zZm9ybU9yaWdpbik7XHJcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eSA9IHBhcnNlKHZpc2liaWxpdHksIGRlY2xhcmF0aW9uLnZpc2liaWxpdHkpO1xyXG4gICAgICAgICAgICB0aGlzLndvcmRCcmVhayA9IHBhcnNlKHdvcmRCcmVhaywgZGVjbGFyYXRpb24ud29yZEJyZWFrKTtcclxuICAgICAgICAgICAgdGhpcy56SW5kZXggPSBwYXJzZSh6SW5kZXgsIGRlY2xhcmF0aW9uLnpJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIENTU1BhcnNlZERlY2xhcmF0aW9uLnByb3RvdHlwZS5pc1Zpc2libGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXkgPiAwICYmIHRoaXMub3BhY2l0eSA+IDAgJiYgdGhpcy52aXNpYmlsaXR5ID09PSBWSVNJQklMSVRZLlZJU0lCTEU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBDU1NQYXJzZWREZWNsYXJhdGlvbi5wcm90b3R5cGUuaXNUcmFuc3BhcmVudCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGlzVHJhbnNwYXJlbnQodGhpcy5iYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQ1NTUGFyc2VkRGVjbGFyYXRpb24ucHJvdG90eXBlLmlzVHJhbnNmb3JtZWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybSAhPT0gbnVsbDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIENTU1BhcnNlZERlY2xhcmF0aW9uLnByb3RvdHlwZS5pc1Bvc2l0aW9uZWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uICE9PSBQT1NJVElPTi5TVEFUSUM7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBDU1NQYXJzZWREZWNsYXJhdGlvbi5wcm90b3R5cGUuaXNQb3NpdGlvbmVkV2l0aFpJbmRleCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNQb3NpdGlvbmVkKCkgJiYgIXRoaXMuekluZGV4LmF1dG87XHJcbiAgICAgICAgfTtcclxuICAgICAgICBDU1NQYXJzZWREZWNsYXJhdGlvbi5wcm90b3R5cGUuaXNGbG9hdGluZyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmxvYXQgIT09IEZMT0FULk5PTkU7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBDU1NQYXJzZWREZWNsYXJhdGlvbi5wcm90b3R5cGUuaXNJbmxpbmVMZXZlbCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChjb250YWlucyh0aGlzLmRpc3BsYXksIDQgLyogSU5MSU5FICovKSB8fFxyXG4gICAgICAgICAgICAgICAgY29udGFpbnModGhpcy5kaXNwbGF5LCAzMzU1NDQzMiAvKiBJTkxJTkVfQkxPQ0sgKi8pIHx8XHJcbiAgICAgICAgICAgICAgICBjb250YWlucyh0aGlzLmRpc3BsYXksIDI2ODQzNTQ1NiAvKiBJTkxJTkVfRkxFWCAqLykgfHxcclxuICAgICAgICAgICAgICAgIGNvbnRhaW5zKHRoaXMuZGlzcGxheSwgNTM2ODcwOTEyIC8qIElOTElORV9HUklEICovKSB8fFxyXG4gICAgICAgICAgICAgICAgY29udGFpbnModGhpcy5kaXNwbGF5LCA2NzEwODg2NCAvKiBJTkxJTkVfTElTVF9JVEVNICovKSB8fFxyXG4gICAgICAgICAgICAgICAgY29udGFpbnModGhpcy5kaXNwbGF5LCAxMzQyMTc3MjggLyogSU5MSU5FX1RBQkxFICovKSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gQ1NTUGFyc2VkRGVjbGFyYXRpb247XHJcbiAgICB9KCkpO1xyXG4gICAgdmFyIENTU1BhcnNlZFBzZXVkb0RlY2xhcmF0aW9uID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIENTU1BhcnNlZFBzZXVkb0RlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudCA9IHBhcnNlKGNvbnRlbnQsIGRlY2xhcmF0aW9uLmNvbnRlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLnF1b3RlcyA9IHBhcnNlKHF1b3RlcywgZGVjbGFyYXRpb24ucXVvdGVzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIENTU1BhcnNlZFBzZXVkb0RlY2xhcmF0aW9uO1xyXG4gICAgfSgpKTtcclxuICAgIHZhciBDU1NQYXJzZWRDb3VudGVyRGVjbGFyYXRpb24gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gQ1NTUGFyc2VkQ291bnRlckRlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRlckluY3JlbWVudCA9IHBhcnNlKGNvdW50ZXJJbmNyZW1lbnQsIGRlY2xhcmF0aW9uLmNvdW50ZXJJbmNyZW1lbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50ZXJSZXNldCA9IHBhcnNlKGNvdW50ZXJSZXNldCwgZGVjbGFyYXRpb24uY291bnRlclJlc2V0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIENTU1BhcnNlZENvdW50ZXJEZWNsYXJhdGlvbjtcclxuICAgIH0oKSk7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgdmFyIHBhcnNlID0gZnVuY3Rpb24gKGRlc2NyaXB0b3IsIHN0eWxlKSB7XHJcbiAgICAgICAgdmFyIHRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIoKTtcclxuICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZSAhPT0gbnVsbCAmJiB0eXBlb2Ygc3R5bGUgIT09ICd1bmRlZmluZWQnID8gc3R5bGUudG9TdHJpbmcoKSA6IGRlc2NyaXB0b3IuaW5pdGlhbFZhbHVlO1xyXG4gICAgICAgIHRva2VuaXplci53cml0ZSh2YWx1ZSk7XHJcbiAgICAgICAgdmFyIHBhcnNlciA9IG5ldyBQYXJzZXIodG9rZW5pemVyLnJlYWQoKSk7XHJcbiAgICAgICAgc3dpdGNoIChkZXNjcmlwdG9yLnR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5JREVOVF9WQUxVRTpcclxuICAgICAgICAgICAgICAgIHZhciB0b2tlbiA9IHBhcnNlci5wYXJzZUNvbXBvbmVudFZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVzY3JpcHRvci5wYXJzZShpc0lkZW50VG9rZW4odG9rZW4pID8gdG9rZW4udmFsdWUgOiBkZXNjcmlwdG9yLmluaXRpYWxWYWx1ZSk7XHJcbiAgICAgICAgICAgIGNhc2UgUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuVkFMVUU6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVzY3JpcHRvci5wYXJzZShwYXJzZXIucGFyc2VDb21wb25lbnRWYWx1ZSgpKTtcclxuICAgICAgICAgICAgY2FzZSBQcm9wZXJ0eURlc2NyaXB0b3JQYXJzaW5nVHlwZS5MSVNUOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3IucGFyc2UocGFyc2VyLnBhcnNlQ29tcG9uZW50VmFsdWVzKCkpO1xyXG4gICAgICAgICAgICBjYXNlIFByb3BlcnR5RGVzY3JpcHRvclBhcnNpbmdUeXBlLlRPS0VOX1ZBTFVFOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlci5wYXJzZUNvbXBvbmVudFZhbHVlKCk7XHJcbiAgICAgICAgICAgIGNhc2UgUHJvcGVydHlEZXNjcmlwdG9yUGFyc2luZ1R5cGUuVFlQRV9WQUxVRTpcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoZGVzY3JpcHRvci5mb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdhbmdsZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbmdsZS5wYXJzZShwYXJzZXIucGFyc2VDb21wb25lbnRWYWx1ZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdjb2xvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xvci5wYXJzZShwYXJzZXIucGFyc2VDb21wb25lbnRWYWx1ZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdpbWFnZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbWFnZS5wYXJzZShwYXJzZXIucGFyc2VDb21wb25lbnRWYWx1ZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdsZW5ndGgnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoXzEgPSBwYXJzZXIucGFyc2VDb21wb25lbnRWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNMZW5ndGgobGVuZ3RoXzEpID8gbGVuZ3RoXzEgOiBaRVJPX0xFTkdUSDtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdsZW5ndGgtcGVyY2VudGFnZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZV8xID0gcGFyc2VyLnBhcnNlQ29tcG9uZW50VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzTGVuZ3RoUGVyY2VudGFnZSh2YWx1ZV8xKSA/IHZhbHVlXzEgOiBaRVJPX0xFTkdUSDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGluZyB0byBwYXJzZSB1bnN1cHBvcnRlZCBjc3MgZm9ybWF0IHR5cGUgXCIgKyBkZXNjcmlwdG9yLmZvcm1hdCk7XHJcbiAgICB9O1xuXG4gICAgdmFyIEVsZW1lbnRDb250YWluZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gRWxlbWVudENvbnRhaW5lcihlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3R5bGVzID0gbmV3IENTU1BhcnNlZERlY2xhcmF0aW9uKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpKTtcclxuICAgICAgICAgICAgdGhpcy50ZXh0Tm9kZXMgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50cyA9IFtdO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zdHlsZXMudHJhbnNmb3JtICE9PSBudWxsICYmIGlzSFRNTEVsZW1lbnROb2RlKGVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBnZXRCb3VuZGluZ0NsaWVudFJlY3QgdGFrZXMgdHJhbnNmb3JtcyBpbnRvIGFjY291bnRcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gJ25vbmUnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuYm91bmRzID0gcGFyc2VCb3VuZHMoZWxlbWVudCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmxhZ3MgPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gRWxlbWVudENvbnRhaW5lcjtcclxuICAgIH0oKSk7XG5cbiAgICB2YXIgVGV4dEJvdW5kcyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBUZXh0Qm91bmRzKHRleHQsIGJvdW5kcykge1xyXG4gICAgICAgICAgICB0aGlzLnRleHQgPSB0ZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFRleHRCb3VuZHM7XHJcbiAgICB9KCkpO1xyXG4gICAgdmFyIHBhcnNlVGV4dEJvdW5kcyA9IGZ1bmN0aW9uICh2YWx1ZSwgc3R5bGVzLCBub2RlKSB7XHJcbiAgICAgICAgdmFyIHRleHRMaXN0ID0gYnJlYWtUZXh0KHZhbHVlLCBzdHlsZXMpO1xyXG4gICAgICAgIHZhciB0ZXh0Qm91bmRzID0gW107XHJcbiAgICAgICAgdmFyIG9mZnNldCA9IDA7XHJcbiAgICAgICAgdGV4dExpc3QuZm9yRWFjaChmdW5jdGlvbiAodGV4dCkge1xyXG4gICAgICAgICAgICBpZiAoc3R5bGVzLnRleHREZWNvcmF0aW9uTGluZS5sZW5ndGggfHwgdGV4dC50cmltKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKEZFQVRVUkVTLlNVUFBPUlRfUkFOR0VfQk9VTkRTKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dEJvdW5kcy5wdXNoKG5ldyBUZXh0Qm91bmRzKHRleHQsIGdldFJhbmdlQm91bmRzKG5vZGUsIG9mZnNldCwgdGV4dC5sZW5ndGgpKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcmVwbGFjZW1lbnROb2RlID0gbm9kZS5zcGxpdFRleHQodGV4dC5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHRCb3VuZHMucHVzaChuZXcgVGV4dEJvdW5kcyh0ZXh0LCBnZXRXcmFwcGVyQm91bmRzKG5vZGUpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHJlcGxhY2VtZW50Tm9kZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICghRkVBVFVSRVMuU1VQUE9SVF9SQU5HRV9CT1VORFMpIHtcclxuICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLnNwbGl0VGV4dCh0ZXh0Lmxlbmd0aCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb2Zmc2V0ICs9IHRleHQubGVuZ3RoO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0ZXh0Qm91bmRzO1xyXG4gICAgfTtcclxuICAgIHZhciBnZXRXcmFwcGVyQm91bmRzID0gZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgICAgICB2YXIgb3duZXJEb2N1bWVudCA9IG5vZGUub3duZXJEb2N1bWVudDtcclxuICAgICAgICBpZiAob3duZXJEb2N1bWVudCkge1xyXG4gICAgICAgICAgICB2YXIgd3JhcHBlciA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaHRtbDJjYW52YXN3cmFwcGVyJyk7XHJcbiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobm9kZS5jbG9uZU5vZGUodHJ1ZSkpO1xyXG4gICAgICAgICAgICB2YXIgcGFyZW50Tm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcclxuICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHdyYXBwZXIsIG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGJvdW5kcyA9IHBhcnNlQm91bmRzKHdyYXBwZXIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHdyYXBwZXIuZmlyc3RDaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHdyYXBwZXIuZmlyc3RDaGlsZCwgd3JhcHBlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYm91bmRzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXcgQm91bmRzKDAsIDAsIDAsIDApO1xyXG4gICAgfTtcclxuICAgIHZhciBnZXRSYW5nZUJvdW5kcyA9IGZ1bmN0aW9uIChub2RlLCBvZmZzZXQsIGxlbmd0aCkge1xyXG4gICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gbm9kZS5vd25lckRvY3VtZW50O1xyXG4gICAgICAgIGlmICghb3duZXJEb2N1bWVudCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vZGUgaGFzIG5vIG93bmVyIGRvY3VtZW50Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciByYW5nZSA9IG93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcclxuICAgICAgICByYW5nZS5zZXRTdGFydChub2RlLCBvZmZzZXQpO1xyXG4gICAgICAgIHJhbmdlLnNldEVuZChub2RlLCBvZmZzZXQgKyBsZW5ndGgpO1xyXG4gICAgICAgIHJldHVybiBCb3VuZHMuZnJvbUNsaWVudFJlY3QocmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xyXG4gICAgfTtcclxuICAgIHZhciBicmVha1RleHQgPSBmdW5jdGlvbiAodmFsdWUsIHN0eWxlcykge1xyXG4gICAgICAgIHJldHVybiBzdHlsZXMubGV0dGVyU3BhY2luZyAhPT0gMCA/IHRvQ29kZVBvaW50cyh2YWx1ZSkubWFwKGZ1bmN0aW9uIChpKSB7IHJldHVybiBmcm9tQ29kZVBvaW50KGkpOyB9KSA6IGJyZWFrV29yZHModmFsdWUsIHN0eWxlcyk7XHJcbiAgICB9O1xyXG4gICAgdmFyIGJyZWFrV29yZHMgPSBmdW5jdGlvbiAoc3RyLCBzdHlsZXMpIHtcclxuICAgICAgICB2YXIgYnJlYWtlciA9IExpbmVCcmVha2VyKHN0ciwge1xyXG4gICAgICAgICAgICBsaW5lQnJlYWs6IHN0eWxlcy5saW5lQnJlYWssXHJcbiAgICAgICAgICAgIHdvcmRCcmVhazogc3R5bGVzLm92ZXJmbG93V3JhcCA9PT0gT1ZFUkZMT1dfV1JBUC5CUkVBS19XT1JEID8gJ2JyZWFrLXdvcmQnIDogc3R5bGVzLndvcmRCcmVha1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciB3b3JkcyA9IFtdO1xyXG4gICAgICAgIHZhciBiaztcclxuICAgICAgICB3aGlsZSAoIShiayA9IGJyZWFrZXIubmV4dCgpKS5kb25lKSB7XHJcbiAgICAgICAgICAgIGlmIChiay52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgd29yZHMucHVzaChiay52YWx1ZS5zbGljZSgpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gd29yZHM7XHJcbiAgICB9O1xuXG4gICAgdmFyIFRleHRDb250YWluZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gVGV4dENvbnRhaW5lcihub2RlLCBzdHlsZXMpIHtcclxuICAgICAgICAgICAgdGhpcy50ZXh0ID0gdHJhbnNmb3JtJDEobm9kZS5kYXRhLCBzdHlsZXMudGV4dFRyYW5zZm9ybSk7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dEJvdW5kcyA9IHBhcnNlVGV4dEJvdW5kcyh0aGlzLnRleHQsIHN0eWxlcywgbm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBUZXh0Q29udGFpbmVyO1xyXG4gICAgfSgpKTtcclxuICAgIHZhciB0cmFuc2Zvcm0kMSA9IGZ1bmN0aW9uICh0ZXh0LCB0cmFuc2Zvcm0pIHtcclxuICAgICAgICBzd2l0Y2ggKHRyYW5zZm9ybSkge1xyXG4gICAgICAgICAgICBjYXNlIFRFWFRfVFJBTlNGT1JNLkxPV0VSQ0FTRTpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIGNhc2UgVEVYVF9UUkFOU0ZPUk0uQ0FQSVRBTElaRTpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoQ0FQSVRBTElaRSwgY2FwaXRhbGl6ZSk7XHJcbiAgICAgICAgICAgIGNhc2UgVEVYVF9UUkFOU0ZPUk0uVVBQRVJDQVNFOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRleHQudG9VcHBlckNhc2UoKTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgQ0FQSVRBTElaRSA9IC8oXnxcXHN8OnwtfFxcKHxcXCkpKFthLXpdKS9nO1xyXG4gICAgdmFyIGNhcGl0YWxpemUgPSBmdW5jdGlvbiAobSwgcDEsIHAyKSB7XHJcbiAgICAgICAgaWYgKG0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gcDEgKyBwMi50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbTtcclxuICAgIH07XG5cbiAgICB2YXIgSW1hZ2VFbGVtZW50Q29udGFpbmVyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgICAgIF9fZXh0ZW5kcyhJbWFnZUVsZW1lbnRDb250YWluZXIsIF9zdXBlcik7XHJcbiAgICAgICAgZnVuY3Rpb24gSW1hZ2VFbGVtZW50Q29udGFpbmVyKGltZykge1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBpbWcpIHx8IHRoaXM7XHJcbiAgICAgICAgICAgIF90aGlzLnNyYyA9IGltZy5jdXJyZW50U3JjIHx8IGltZy5zcmM7XHJcbiAgICAgICAgICAgIF90aGlzLmludHJpbnNpY1dpZHRoID0gaW1nLm5hdHVyYWxXaWR0aDtcclxuICAgICAgICAgICAgX3RoaXMuaW50cmluc2ljSGVpZ2h0ID0gaW1nLm5hdHVyYWxIZWlnaHQ7XHJcbiAgICAgICAgICAgIENhY2hlU3RvcmFnZS5nZXRJbnN0YW5jZSgpLmFkZEltYWdlKF90aGlzLnNyYyk7XHJcbiAgICAgICAgICAgIHJldHVybiBfdGhpcztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIEltYWdlRWxlbWVudENvbnRhaW5lcjtcclxuICAgIH0oRWxlbWVudENvbnRhaW5lcikpO1xuXG4gICAgdmFyIENhbnZhc0VsZW1lbnRDb250YWluZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICAgICAgX19leHRlbmRzKENhbnZhc0VsZW1lbnRDb250YWluZXIsIF9zdXBlcik7XHJcbiAgICAgICAgZnVuY3Rpb24gQ2FudmFzRWxlbWVudENvbnRhaW5lcihjYW52YXMpIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgY2FudmFzKSB8fCB0aGlzO1xyXG4gICAgICAgICAgICBfdGhpcy5jYW52YXMgPSBjYW52YXM7XHJcbiAgICAgICAgICAgIF90aGlzLmludHJpbnNpY1dpZHRoID0gY2FudmFzLndpZHRoO1xyXG4gICAgICAgICAgICBfdGhpcy5pbnRyaW5zaWNIZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xyXG4gICAgICAgICAgICByZXR1cm4gX3RoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBDYW52YXNFbGVtZW50Q29udGFpbmVyO1xyXG4gICAgfShFbGVtZW50Q29udGFpbmVyKSk7XG5cbiAgICB2YXIgU1ZHRWxlbWVudENvbnRhaW5lciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcclxuICAgICAgICBfX2V4dGVuZHMoU1ZHRWxlbWVudENvbnRhaW5lciwgX3N1cGVyKTtcclxuICAgICAgICBmdW5jdGlvbiBTVkdFbGVtZW50Q29udGFpbmVyKGltZykge1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBpbWcpIHx8IHRoaXM7XHJcbiAgICAgICAgICAgIHZhciBzID0gbmV3IFhNTFNlcmlhbGl6ZXIoKTtcclxuICAgICAgICAgICAgX3RoaXMuc3ZnID0gXCJkYXRhOmltYWdlL3N2Zyt4bWwsXCIgKyBlbmNvZGVVUklDb21wb25lbnQocy5zZXJpYWxpemVUb1N0cmluZyhpbWcpKTtcclxuICAgICAgICAgICAgX3RoaXMuaW50cmluc2ljV2lkdGggPSBpbWcud2lkdGguYmFzZVZhbC52YWx1ZTtcclxuICAgICAgICAgICAgX3RoaXMuaW50cmluc2ljSGVpZ2h0ID0gaW1nLmhlaWdodC5iYXNlVmFsLnZhbHVlO1xyXG4gICAgICAgICAgICBDYWNoZVN0b3JhZ2UuZ2V0SW5zdGFuY2UoKS5hZGRJbWFnZShfdGhpcy5zdmcpO1xyXG4gICAgICAgICAgICByZXR1cm4gX3RoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBTVkdFbGVtZW50Q29udGFpbmVyO1xyXG4gICAgfShFbGVtZW50Q29udGFpbmVyKSk7XG5cbiAgICB2YXIgTElFbGVtZW50Q29udGFpbmVyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgICAgIF9fZXh0ZW5kcyhMSUVsZW1lbnRDb250YWluZXIsIF9zdXBlcik7XHJcbiAgICAgICAgZnVuY3Rpb24gTElFbGVtZW50Q29udGFpbmVyKGVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgZWxlbWVudCkgfHwgdGhpcztcclxuICAgICAgICAgICAgX3RoaXMudmFsdWUgPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gX3RoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBMSUVsZW1lbnRDb250YWluZXI7XHJcbiAgICB9KEVsZW1lbnRDb250YWluZXIpKTtcblxuICAgIHZhciBPTEVsZW1lbnRDb250YWluZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICAgICAgX19leHRlbmRzKE9MRWxlbWVudENvbnRhaW5lciwgX3N1cGVyKTtcclxuICAgICAgICBmdW5jdGlvbiBPTEVsZW1lbnRDb250YWluZXIoZWxlbWVudCkge1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBlbGVtZW50KSB8fCB0aGlzO1xyXG4gICAgICAgICAgICBfdGhpcy5zdGFydCA9IGVsZW1lbnQuc3RhcnQ7XHJcbiAgICAgICAgICAgIF90aGlzLnJldmVyc2VkID0gdHlwZW9mIGVsZW1lbnQucmV2ZXJzZWQgPT09ICdib29sZWFuJyAmJiBlbGVtZW50LnJldmVyc2VkID09PSB0cnVlO1xyXG4gICAgICAgICAgICByZXR1cm4gX3RoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBPTEVsZW1lbnRDb250YWluZXI7XHJcbiAgICB9KEVsZW1lbnRDb250YWluZXIpKTtcblxuICAgIHZhciBDSEVDS0JPWF9CT1JERVJfUkFESVVTID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogVG9rZW5UeXBlLkRJTUVOU0lPTl9UT0tFTixcclxuICAgICAgICAgICAgZmxhZ3M6IDAsXHJcbiAgICAgICAgICAgIHVuaXQ6ICdweCcsXHJcbiAgICAgICAgICAgIG51bWJlcjogM1xyXG4gICAgICAgIH1cclxuICAgIF07XHJcbiAgICB2YXIgUkFESU9fQk9SREVSX1JBRElVUyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR5cGU6IFRva2VuVHlwZS5QRVJDRU5UQUdFX1RPS0VOLFxyXG4gICAgICAgICAgICBmbGFnczogMCxcclxuICAgICAgICAgICAgbnVtYmVyOiA1MFxyXG4gICAgICAgIH1cclxuICAgIF07XHJcbiAgICB2YXIgcmVmb3JtYXRJbnB1dEJvdW5kcyA9IGZ1bmN0aW9uIChib3VuZHMpIHtcclxuICAgICAgICBpZiAoYm91bmRzLndpZHRoID4gYm91bmRzLmhlaWdodCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEJvdW5kcyhib3VuZHMubGVmdCArIChib3VuZHMud2lkdGggLSBib3VuZHMuaGVpZ2h0KSAvIDIsIGJvdW5kcy50b3AsIGJvdW5kcy5oZWlnaHQsIGJvdW5kcy5oZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChib3VuZHMud2lkdGggPCBib3VuZHMuaGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQm91bmRzKGJvdW5kcy5sZWZ0LCBib3VuZHMudG9wICsgKGJvdW5kcy5oZWlnaHQgLSBib3VuZHMud2lkdGgpIC8gMiwgYm91bmRzLndpZHRoLCBib3VuZHMud2lkdGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYm91bmRzO1xyXG4gICAgfTtcclxuICAgIHZhciBnZXRJbnB1dFZhbHVlID0gZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgICAgICB2YXIgdmFsdWUgPSBub2RlLnR5cGUgPT09IFBBU1NXT1JEID8gbmV3IEFycmF5KG5vZGUudmFsdWUubGVuZ3RoICsgMSkuam9pbignXFx1MjAyMicpIDogbm9kZS52YWx1ZTtcclxuICAgICAgICByZXR1cm4gdmFsdWUubGVuZ3RoID09PSAwID8gbm9kZS5wbGFjZWhvbGRlciB8fCAnJyA6IHZhbHVlO1xyXG4gICAgfTtcclxuICAgIHZhciBDSEVDS0JPWCA9ICdjaGVja2JveCc7XHJcbiAgICB2YXIgUkFESU8gPSAncmFkaW8nO1xyXG4gICAgdmFyIFBBU1NXT1JEID0gJ3Bhc3N3b3JkJztcclxuICAgIHZhciBJTlBVVF9DT0xPUiA9IDB4MmEyYTJhZmY7XHJcbiAgICB2YXIgSW5wdXRFbGVtZW50Q29udGFpbmVyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xyXG4gICAgICAgIF9fZXh0ZW5kcyhJbnB1dEVsZW1lbnRDb250YWluZXIsIF9zdXBlcik7XHJcbiAgICAgICAgZnVuY3Rpb24gSW5wdXRFbGVtZW50Q29udGFpbmVyKGlucHV0KSB7XHJcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGlucHV0KSB8fCB0aGlzO1xyXG4gICAgICAgICAgICBfdGhpcy50eXBlID0gaW5wdXQudHlwZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBfdGhpcy5jaGVja2VkID0gaW5wdXQuY2hlY2tlZDtcclxuICAgICAgICAgICAgX3RoaXMudmFsdWUgPSBnZXRJbnB1dFZhbHVlKGlucHV0KTtcclxuICAgICAgICAgICAgaWYgKF90aGlzLnR5cGUgPT09IENIRUNLQk9YIHx8IF90aGlzLnR5cGUgPT09IFJBRElPKSB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5zdHlsZXMuYmFja2dyb3VuZENvbG9yID0gMHhkZWRlZGVmZjtcclxuICAgICAgICAgICAgICAgIF90aGlzLnN0eWxlcy5ib3JkZXJUb3BDb2xvciA9IF90aGlzLnN0eWxlcy5ib3JkZXJSaWdodENvbG9yID0gX3RoaXMuc3R5bGVzLmJvcmRlckJvdHRvbUNvbG9yID0gX3RoaXMuc3R5bGVzLmJvcmRlckxlZnRDb2xvciA9IDB4YTVhNWE1ZmY7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5zdHlsZXMuYm9yZGVyVG9wV2lkdGggPSBfdGhpcy5zdHlsZXMuYm9yZGVyUmlnaHRXaWR0aCA9IF90aGlzLnN0eWxlcy5ib3JkZXJCb3R0b21XaWR0aCA9IF90aGlzLnN0eWxlcy5ib3JkZXJMZWZ0V2lkdGggPSAxO1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuc3R5bGVzLmJvcmRlclRvcFN0eWxlID0gX3RoaXMuc3R5bGVzLmJvcmRlclJpZ2h0U3R5bGUgPSBfdGhpcy5zdHlsZXMuYm9yZGVyQm90dG9tU3R5bGUgPSBfdGhpcy5zdHlsZXMuYm9yZGVyTGVmdFN0eWxlID1cclxuICAgICAgICAgICAgICAgICAgICBCT1JERVJfU1RZTEUuU09MSUQ7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5zdHlsZXMuYmFja2dyb3VuZENsaXAgPSBbQkFDS0dST1VORF9DTElQLkJPUkRFUl9CT1hdO1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuc3R5bGVzLmJhY2tncm91bmRPcmlnaW4gPSBbMCAvKiBCT1JERVJfQk9YICovXTtcclxuICAgICAgICAgICAgICAgIF90aGlzLmJvdW5kcyA9IHJlZm9ybWF0SW5wdXRCb3VuZHMoX3RoaXMuYm91bmRzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzd2l0Y2ggKF90aGlzLnR5cGUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgQ0hFQ0tCT1g6XHJcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc3R5bGVzLmJvcmRlclRvcFJpZ2h0UmFkaXVzID0gX3RoaXMuc3R5bGVzLmJvcmRlclRvcExlZnRSYWRpdXMgPSBfdGhpcy5zdHlsZXMuYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMgPSBfdGhpcy5zdHlsZXMuYm9yZGVyQm90dG9tTGVmdFJhZGl1cyA9IENIRUNLQk9YX0JPUkRFUl9SQURJVVM7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFJBRElPOlxyXG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnN0eWxlcy5ib3JkZXJUb3BSaWdodFJhZGl1cyA9IF90aGlzLnN0eWxlcy5ib3JkZXJUb3BMZWZ0UmFkaXVzID0gX3RoaXMuc3R5bGVzLmJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzID0gX3RoaXMuc3R5bGVzLmJvcmRlckJvdHRvbUxlZnRSYWRpdXMgPSBSQURJT19CT1JERVJfUkFESVVTO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBfdGhpcztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIElucHV0RWxlbWVudENvbnRhaW5lcjtcclxuICAgIH0oRWxlbWVudENvbnRhaW5lcikpO1xuXG4gICAgdmFyIFNlbGVjdEVsZW1lbnRDb250YWluZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICAgICAgX19leHRlbmRzKFNlbGVjdEVsZW1lbnRDb250YWluZXIsIF9zdXBlcik7XHJcbiAgICAgICAgZnVuY3Rpb24gU2VsZWN0RWxlbWVudENvbnRhaW5lcihlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIGVsZW1lbnQpIHx8IHRoaXM7XHJcbiAgICAgICAgICAgIHZhciBvcHRpb24gPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4IHx8IDBdO1xyXG4gICAgICAgICAgICBfdGhpcy52YWx1ZSA9IG9wdGlvbiA/IG9wdGlvbi50ZXh0IHx8ICcnIDogJyc7XHJcbiAgICAgICAgICAgIHJldHVybiBfdGhpcztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFNlbGVjdEVsZW1lbnRDb250YWluZXI7XHJcbiAgICB9KEVsZW1lbnRDb250YWluZXIpKTtcblxuICAgIHZhciBUZXh0YXJlYUVsZW1lbnRDb250YWluZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XHJcbiAgICAgICAgX19leHRlbmRzKFRleHRhcmVhRWxlbWVudENvbnRhaW5lciwgX3N1cGVyKTtcclxuICAgICAgICBmdW5jdGlvbiBUZXh0YXJlYUVsZW1lbnRDb250YWluZXIoZWxlbWVudCkge1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBlbGVtZW50KSB8fCB0aGlzO1xyXG4gICAgICAgICAgICBfdGhpcy52YWx1ZSA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgIHJldHVybiBfdGhpcztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFRleHRhcmVhRWxlbWVudENvbnRhaW5lcjtcclxuICAgIH0oRWxlbWVudENvbnRhaW5lcikpO1xuXG4gICAgdmFyIHBhcnNlQ29sb3IgPSBmdW5jdGlvbiAodmFsdWUpIHsgcmV0dXJuIGNvbG9yLnBhcnNlKFBhcnNlci5jcmVhdGUodmFsdWUpLnBhcnNlQ29tcG9uZW50VmFsdWUoKSk7IH07XHJcbiAgICB2YXIgSUZyYW1lRWxlbWVudENvbnRhaW5lciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHtcclxuICAgICAgICBfX2V4dGVuZHMoSUZyYW1lRWxlbWVudENvbnRhaW5lciwgX3N1cGVyKTtcclxuICAgICAgICBmdW5jdGlvbiBJRnJhbWVFbGVtZW50Q29udGFpbmVyKGlmcmFtZSkge1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBpZnJhbWUpIHx8IHRoaXM7XHJcbiAgICAgICAgICAgIF90aGlzLnNyYyA9IGlmcmFtZS5zcmM7XHJcbiAgICAgICAgICAgIF90aGlzLndpZHRoID0gcGFyc2VJbnQoaWZyYW1lLndpZHRoLCAxMCkgfHwgMDtcclxuICAgICAgICAgICAgX3RoaXMuaGVpZ2h0ID0gcGFyc2VJbnQoaWZyYW1lLmhlaWdodCwgMTApIHx8IDA7XHJcbiAgICAgICAgICAgIF90aGlzLmJhY2tncm91bmRDb2xvciA9IF90aGlzLnN0eWxlcy5iYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaWZyYW1lLmNvbnRlbnRXaW5kb3cgJiZcclxuICAgICAgICAgICAgICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnRyZWUgPSBwYXJzZVRyZWUoaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWJhY2tncm91bmQvI3NwZWNpYWwtYmFja2dyb3VuZHNcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3IgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBwYXJzZUNvbG9yKGdldENvbXB1dGVkU3R5bGUoaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmJhY2tncm91bmRDb2xvcilcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBDT0xPUlMuVFJBTlNQQVJFTlQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJvZHlCYWNrZ3JvdW5kQ29sb3IgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gcGFyc2VDb2xvcihnZXRDb21wdXRlZFN0eWxlKGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkpLmJhY2tncm91bmRDb2xvcilcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBDT0xPUlMuVFJBTlNQQVJFTlQ7XHJcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuYmFja2dyb3VuZENvbG9yID0gaXNUcmFuc3BhcmVudChkb2N1bWVudEJhY2tncm91bmRDb2xvcilcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpc1RyYW5zcGFyZW50KGJvZHlCYWNrZ3JvdW5kQ29sb3IpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IF90aGlzLnN0eWxlcy5iYWNrZ3JvdW5kQ29sb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYm9keUJhY2tncm91bmRDb2xvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGRvY3VtZW50QmFja2dyb3VuZENvbG9yO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7IH1cclxuICAgICAgICAgICAgcmV0dXJuIF90aGlzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gSUZyYW1lRWxlbWVudENvbnRhaW5lcjtcclxuICAgIH0oRWxlbWVudENvbnRhaW5lcikpO1xuXG4gICAgdmFyIExJU1RfT1dORVJTID0gWydPTCcsICdVTCcsICdNRU5VJ107XHJcbiAgICB2YXIgcGFyc2VOb2RlVHJlZSA9IGZ1bmN0aW9uIChub2RlLCBwYXJlbnQsIHJvb3QpIHtcclxuICAgICAgICBmb3IgKHZhciBjaGlsZE5vZGUgPSBub2RlLmZpcnN0Q2hpbGQsIG5leHROb2RlID0gdm9pZCAwOyBjaGlsZE5vZGU7IGNoaWxkTm9kZSA9IG5leHROb2RlKSB7XHJcbiAgICAgICAgICAgIG5leHROb2RlID0gY2hpbGROb2RlLm5leHRTaWJsaW5nO1xyXG4gICAgICAgICAgICBpZiAoaXNUZXh0Tm9kZShjaGlsZE5vZGUpICYmIGNoaWxkTm9kZS5kYXRhLnRyaW0oKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJlbnQudGV4dE5vZGVzLnB1c2gobmV3IFRleHRDb250YWluZXIoY2hpbGROb2RlLCBwYXJlbnQuc3R5bGVzKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaXNFbGVtZW50Tm9kZShjaGlsZE5vZGUpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY29udGFpbmVyID0gY3JlYXRlQ29udGFpbmVyKGNoaWxkTm9kZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyLnN0eWxlcy5pc1Zpc2libGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjcmVhdGVzUmVhbFN0YWNraW5nQ29udGV4dChjaGlsZE5vZGUsIGNvbnRhaW5lciwgcm9vdCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmZsYWdzIHw9IDQgLyogQ1JFQVRFU19SRUFMX1NUQUNLSU5HX0NPTlRFWFQgKi87XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNyZWF0ZXNTdGFja2luZ0NvbnRleHQoY29udGFpbmVyLnN0eWxlcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmZsYWdzIHw9IDIgLyogQ1JFQVRFU19TVEFDS0lOR19DT05URVhUICovO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoTElTVF9PV05FUlMuaW5kZXhPZihjaGlsZE5vZGUudGFnTmFtZSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5mbGFncyB8PSA4IC8qIElTX0xJU1RfT1dORVIgKi87XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudC5lbGVtZW50cy5wdXNoKGNvbnRhaW5lcik7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1RleHRhcmVhRWxlbWVudChjaGlsZE5vZGUpICYmICFpc1NWR0VsZW1lbnQoY2hpbGROb2RlKSAmJiAhaXNTZWxlY3RFbGVtZW50KGNoaWxkTm9kZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VOb2RlVHJlZShjaGlsZE5vZGUsIGNvbnRhaW5lciwgcm9vdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHZhciBjcmVhdGVDb250YWluZXIgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xyXG4gICAgICAgIGlmIChpc0ltYWdlRWxlbWVudChlbGVtZW50KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEltYWdlRWxlbWVudENvbnRhaW5lcihlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzQ2FudmFzRWxlbWVudChlbGVtZW50KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IENhbnZhc0VsZW1lbnRDb250YWluZXIoZWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc1NWR0VsZW1lbnQoZWxlbWVudCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTVkdFbGVtZW50Q29udGFpbmVyKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNMSUVsZW1lbnQoZWxlbWVudCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBMSUVsZW1lbnRDb250YWluZXIoZWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc09MRWxlbWVudChlbGVtZW50KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IE9MRWxlbWVudENvbnRhaW5lcihlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzSW5wdXRFbGVtZW50KGVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgSW5wdXRFbGVtZW50Q29udGFpbmVyKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNTZWxlY3RFbGVtZW50KGVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2VsZWN0RWxlbWVudENvbnRhaW5lcihlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlzVGV4dGFyZWFFbGVtZW50KGVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgVGV4dGFyZWFFbGVtZW50Q29udGFpbmVyKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNJRnJhbWVFbGVtZW50KGVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgSUZyYW1lRWxlbWVudENvbnRhaW5lcihlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyBFbGVtZW50Q29udGFpbmVyKGVsZW1lbnQpO1xyXG4gICAgfTtcclxuICAgIHZhciBwYXJzZVRyZWUgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xyXG4gICAgICAgIHZhciBjb250YWluZXIgPSBjcmVhdGVDb250YWluZXIoZWxlbWVudCk7XHJcbiAgICAgICAgY29udGFpbmVyLmZsYWdzIHw9IDQgLyogQ1JFQVRFU19SRUFMX1NUQUNLSU5HX0NPTlRFWFQgKi87XHJcbiAgICAgICAgcGFyc2VOb2RlVHJlZShlbGVtZW50LCBjb250YWluZXIsIGNvbnRhaW5lcik7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcclxuICAgIH07XHJcbiAgICB2YXIgY3JlYXRlc1JlYWxTdGFja2luZ0NvbnRleHQgPSBmdW5jdGlvbiAobm9kZSwgY29udGFpbmVyLCByb290KSB7XHJcbiAgICAgICAgcmV0dXJuIChjb250YWluZXIuc3R5bGVzLmlzUG9zaXRpb25lZFdpdGhaSW5kZXgoKSB8fFxyXG4gICAgICAgICAgICBjb250YWluZXIuc3R5bGVzLm9wYWNpdHkgPCAxIHx8XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5zdHlsZXMuaXNUcmFuc2Zvcm1lZCgpIHx8XHJcbiAgICAgICAgICAgIChpc0JvZHlFbGVtZW50KG5vZGUpICYmIHJvb3Quc3R5bGVzLmlzVHJhbnNwYXJlbnQoKSkpO1xyXG4gICAgfTtcclxuICAgIHZhciBjcmVhdGVzU3RhY2tpbmdDb250ZXh0ID0gZnVuY3Rpb24gKHN0eWxlcykgeyByZXR1cm4gc3R5bGVzLmlzUG9zaXRpb25lZCgpIHx8IHN0eWxlcy5pc0Zsb2F0aW5nKCk7IH07XHJcbiAgICB2YXIgaXNUZXh0Tm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERTsgfTtcclxuICAgIHZhciBpc0VsZW1lbnROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFOyB9O1xyXG4gICAgdmFyIGlzSFRNTEVsZW1lbnROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG5vZGUuc3R5bGUgIT09ICd1bmRlZmluZWQnO1xyXG4gICAgfTtcclxuICAgIHZhciBpc0xJRWxlbWVudCA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLnRhZ05hbWUgPT09ICdMSSc7IH07XHJcbiAgICB2YXIgaXNPTEVsZW1lbnQgPSBmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS50YWdOYW1lID09PSAnT0wnOyB9O1xyXG4gICAgdmFyIGlzSW5wdXRFbGVtZW50ID0gZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUudGFnTmFtZSA9PT0gJ0lOUFVUJzsgfTtcclxuICAgIHZhciBpc0hUTUxFbGVtZW50ID0gZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUudGFnTmFtZSA9PT0gJ0hUTUwnOyB9O1xyXG4gICAgdmFyIGlzU1ZHRWxlbWVudCA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLnRhZ05hbWUgPT09ICdzdmcnOyB9O1xyXG4gICAgdmFyIGlzQm9keUVsZW1lbnQgPSBmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS50YWdOYW1lID09PSAnQk9EWSc7IH07XHJcbiAgICB2YXIgaXNDYW52YXNFbGVtZW50ID0gZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUudGFnTmFtZSA9PT0gJ0NBTlZBUyc7IH07XHJcbiAgICB2YXIgaXNJbWFnZUVsZW1lbnQgPSBmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS50YWdOYW1lID09PSAnSU1HJzsgfTtcclxuICAgIHZhciBpc0lGcmFtZUVsZW1lbnQgPSBmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS50YWdOYW1lID09PSAnSUZSQU1FJzsgfTtcclxuICAgIHZhciBpc1N0eWxlRWxlbWVudCA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLnRhZ05hbWUgPT09ICdTVFlMRSc7IH07XHJcbiAgICB2YXIgaXNTY3JpcHRFbGVtZW50ID0gZnVuY3Rpb24gKG5vZGUpIHsgcmV0dXJuIG5vZGUudGFnTmFtZSA9PT0gJ1NDUklQVCc7IH07XHJcbiAgICB2YXIgaXNUZXh0YXJlYUVsZW1lbnQgPSBmdW5jdGlvbiAobm9kZSkgeyByZXR1cm4gbm9kZS50YWdOYW1lID09PSAnVEVYVEFSRUEnOyB9O1xyXG4gICAgdmFyIGlzU2VsZWN0RWxlbWVudCA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiBub2RlLnRhZ05hbWUgPT09ICdTRUxFQ1QnOyB9O1xuXG4gICAgdmFyIENvdW50ZXJTdGF0ZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBDb3VudGVyU3RhdGUoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRlcnMgPSB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgQ291bnRlclN0YXRlLnByb3RvdHlwZS5nZXRDb3VudGVyVmFsdWUgPSBmdW5jdGlvbiAobmFtZSkge1xyXG4gICAgICAgICAgICB2YXIgY291bnRlciA9IHRoaXMuY291bnRlcnNbbmFtZV07XHJcbiAgICAgICAgICAgIGlmIChjb3VudGVyICYmIGNvdW50ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlcltjb3VudGVyLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgQ291bnRlclN0YXRlLnByb3RvdHlwZS5nZXRDb3VudGVyVmFsdWVzID0gZnVuY3Rpb24gKG5hbWUpIHtcclxuICAgICAgICAgICAgdmFyIGNvdW50ZXIgPSB0aGlzLmNvdW50ZXJzW25hbWVdO1xyXG4gICAgICAgICAgICByZXR1cm4gY291bnRlciA/IGNvdW50ZXIgOiBbXTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIENvdW50ZXJTdGF0ZS5wcm90b3R5cGUucG9wID0gZnVuY3Rpb24gKGNvdW50ZXJzKSB7XHJcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgIGNvdW50ZXJzLmZvckVhY2goZnVuY3Rpb24gKGNvdW50ZXIpIHsgcmV0dXJuIF90aGlzLmNvdW50ZXJzW2NvdW50ZXJdLnBvcCgpOyB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIENvdW50ZXJTdGF0ZS5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbiAoc3R5bGUpIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAgICAgdmFyIGNvdW50ZXJJbmNyZW1lbnQgPSBzdHlsZS5jb3VudGVySW5jcmVtZW50O1xyXG4gICAgICAgICAgICB2YXIgY291bnRlclJlc2V0ID0gc3R5bGUuY291bnRlclJlc2V0O1xyXG4gICAgICAgICAgICB2YXIgY2FuUmVzZXQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAoY291bnRlckluY3JlbWVudCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgY291bnRlckluY3JlbWVudC5mb3JFYWNoKGZ1bmN0aW9uIChlbnRyeSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb3VudGVyID0gX3RoaXMuY291bnRlcnNbZW50cnkuY291bnRlcl07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ZXIgJiYgZW50cnkuaW5jcmVtZW50ICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhblJlc2V0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ZXJbTWF0aC5tYXgoMCwgY291bnRlci5sZW5ndGggLSAxKV0gKz0gZW50cnkuaW5jcmVtZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBjb3VudGVyTmFtZXMgPSBbXTtcclxuICAgICAgICAgICAgaWYgKGNhblJlc2V0KSB7XHJcbiAgICAgICAgICAgICAgICBjb3VudGVyUmVzZXQuZm9yRWFjaChmdW5jdGlvbiAoZW50cnkpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgY291bnRlciA9IF90aGlzLmNvdW50ZXJzW2VudHJ5LmNvdW50ZXJdO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50ZXJOYW1lcy5wdXNoKGVudHJ5LmNvdW50ZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghY291bnRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudGVyID0gX3RoaXMuY291bnRlcnNbZW50cnkuY291bnRlcl0gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY291bnRlci5wdXNoKGVudHJ5LnJlc2V0KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjb3VudGVyTmFtZXM7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gQ291bnRlclN0YXRlO1xyXG4gICAgfSgpKTtcclxuICAgIHZhciBST01BTl9VUFBFUiA9IHtcclxuICAgICAgICBpbnRlZ2VyczogWzEwMDAsIDkwMCwgNTAwLCA0MDAsIDEwMCwgOTAsIDUwLCA0MCwgMTAsIDksIDUsIDQsIDFdLFxyXG4gICAgICAgIHZhbHVlczogWydNJywgJ0NNJywgJ0QnLCAnQ0QnLCAnQycsICdYQycsICdMJywgJ1hMJywgJ1gnLCAnSVgnLCAnVicsICdJVicsICdJJ11cclxuICAgIH07XHJcbiAgICB2YXIgQVJNRU5JQU4gPSB7XHJcbiAgICAgICAgaW50ZWdlcnM6IFtcclxuICAgICAgICAgICAgOTAwMCxcclxuICAgICAgICAgICAgODAwMCxcclxuICAgICAgICAgICAgNzAwMCxcclxuICAgICAgICAgICAgNjAwMCxcclxuICAgICAgICAgICAgNTAwMCxcclxuICAgICAgICAgICAgNDAwMCxcclxuICAgICAgICAgICAgMzAwMCxcclxuICAgICAgICAgICAgMjAwMCxcclxuICAgICAgICAgICAgMTAwMCxcclxuICAgICAgICAgICAgOTAwLFxyXG4gICAgICAgICAgICA4MDAsXHJcbiAgICAgICAgICAgIDcwMCxcclxuICAgICAgICAgICAgNjAwLFxyXG4gICAgICAgICAgICA1MDAsXHJcbiAgICAgICAgICAgIDQwMCxcclxuICAgICAgICAgICAgMzAwLFxyXG4gICAgICAgICAgICAyMDAsXHJcbiAgICAgICAgICAgIDEwMCxcclxuICAgICAgICAgICAgOTAsXHJcbiAgICAgICAgICAgIDgwLFxyXG4gICAgICAgICAgICA3MCxcclxuICAgICAgICAgICAgNjAsXHJcbiAgICAgICAgICAgIDUwLFxyXG4gICAgICAgICAgICA0MCxcclxuICAgICAgICAgICAgMzAsXHJcbiAgICAgICAgICAgIDIwLFxyXG4gICAgICAgICAgICAxMCxcclxuICAgICAgICAgICAgOSxcclxuICAgICAgICAgICAgOCxcclxuICAgICAgICAgICAgNyxcclxuICAgICAgICAgICAgNixcclxuICAgICAgICAgICAgNSxcclxuICAgICAgICAgICAgNCxcclxuICAgICAgICAgICAgMyxcclxuICAgICAgICAgICAgMixcclxuICAgICAgICAgICAgMVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgdmFsdWVzOiBbXHJcbiAgICAgICAgICAgICfVlCcsXHJcbiAgICAgICAgICAgICfVkycsXHJcbiAgICAgICAgICAgICfVkicsXHJcbiAgICAgICAgICAgICfVkScsXHJcbiAgICAgICAgICAgICfVkCcsXHJcbiAgICAgICAgICAgICfVjycsXHJcbiAgICAgICAgICAgICfVjicsXHJcbiAgICAgICAgICAgICfVjScsXHJcbiAgICAgICAgICAgICfVjCcsXHJcbiAgICAgICAgICAgICfViycsXHJcbiAgICAgICAgICAgICfViicsXHJcbiAgICAgICAgICAgICfViScsXHJcbiAgICAgICAgICAgICfViCcsXHJcbiAgICAgICAgICAgICfVhycsXHJcbiAgICAgICAgICAgICfVhicsXHJcbiAgICAgICAgICAgICfVhScsXHJcbiAgICAgICAgICAgICfVhCcsXHJcbiAgICAgICAgICAgICfVgycsXHJcbiAgICAgICAgICAgICfVgicsXHJcbiAgICAgICAgICAgICfVgScsXHJcbiAgICAgICAgICAgICfVgCcsXHJcbiAgICAgICAgICAgICfUvycsXHJcbiAgICAgICAgICAgICfUvicsXHJcbiAgICAgICAgICAgICfUvScsXHJcbiAgICAgICAgICAgICfUvCcsXHJcbiAgICAgICAgICAgICfUuycsXHJcbiAgICAgICAgICAgICfUuicsXHJcbiAgICAgICAgICAgICfUuScsXHJcbiAgICAgICAgICAgICfUuCcsXHJcbiAgICAgICAgICAgICfUtycsXHJcbiAgICAgICAgICAgICfUticsXHJcbiAgICAgICAgICAgICfUtScsXHJcbiAgICAgICAgICAgICfUtCcsXHJcbiAgICAgICAgICAgICfUsycsXHJcbiAgICAgICAgICAgICfUsicsXHJcbiAgICAgICAgICAgICfUsSdcclxuICAgICAgICBdXHJcbiAgICB9O1xyXG4gICAgdmFyIEhFQlJFVyA9IHtcclxuICAgICAgICBpbnRlZ2VyczogW1xyXG4gICAgICAgICAgICAxMDAwMCxcclxuICAgICAgICAgICAgOTAwMCxcclxuICAgICAgICAgICAgODAwMCxcclxuICAgICAgICAgICAgNzAwMCxcclxuICAgICAgICAgICAgNjAwMCxcclxuICAgICAgICAgICAgNTAwMCxcclxuICAgICAgICAgICAgNDAwMCxcclxuICAgICAgICAgICAgMzAwMCxcclxuICAgICAgICAgICAgMjAwMCxcclxuICAgICAgICAgICAgMTAwMCxcclxuICAgICAgICAgICAgNDAwLFxyXG4gICAgICAgICAgICAzMDAsXHJcbiAgICAgICAgICAgIDIwMCxcclxuICAgICAgICAgICAgMTAwLFxyXG4gICAgICAgICAgICA5MCxcclxuICAgICAgICAgICAgODAsXHJcbiAgICAgICAgICAgIDcwLFxyXG4gICAgICAgICAgICA2MCxcclxuICAgICAgICAgICAgNTAsXHJcbiAgICAgICAgICAgIDQwLFxyXG4gICAgICAgICAgICAzMCxcclxuICAgICAgICAgICAgMjAsXHJcbiAgICAgICAgICAgIDE5LFxyXG4gICAgICAgICAgICAxOCxcclxuICAgICAgICAgICAgMTcsXHJcbiAgICAgICAgICAgIDE2LFxyXG4gICAgICAgICAgICAxNSxcclxuICAgICAgICAgICAgMTAsXHJcbiAgICAgICAgICAgIDksXHJcbiAgICAgICAgICAgIDgsXHJcbiAgICAgICAgICAgIDcsXHJcbiAgICAgICAgICAgIDYsXHJcbiAgICAgICAgICAgIDUsXHJcbiAgICAgICAgICAgIDQsXHJcbiAgICAgICAgICAgIDMsXHJcbiAgICAgICAgICAgIDIsXHJcbiAgICAgICAgICAgIDFcclxuICAgICAgICBdLFxyXG4gICAgICAgIHZhbHVlczogW1xyXG4gICAgICAgICAgICAn15nXsycsXHJcbiAgICAgICAgICAgICfXmNezJyxcclxuICAgICAgICAgICAgJ9eX17MnLFxyXG4gICAgICAgICAgICAn15bXsycsXHJcbiAgICAgICAgICAgICfXldezJyxcclxuICAgICAgICAgICAgJ9eU17MnLFxyXG4gICAgICAgICAgICAn15PXsycsXHJcbiAgICAgICAgICAgICfXktezJyxcclxuICAgICAgICAgICAgJ9eR17MnLFxyXG4gICAgICAgICAgICAn15DXsycsXHJcbiAgICAgICAgICAgICfXqicsXHJcbiAgICAgICAgICAgICfXqScsXHJcbiAgICAgICAgICAgICfXqCcsXHJcbiAgICAgICAgICAgICfXpycsXHJcbiAgICAgICAgICAgICfXpicsXHJcbiAgICAgICAgICAgICfXpCcsXHJcbiAgICAgICAgICAgICfXoicsXHJcbiAgICAgICAgICAgICfXoScsXHJcbiAgICAgICAgICAgICfXoCcsXHJcbiAgICAgICAgICAgICfXnicsXHJcbiAgICAgICAgICAgICfXnCcsXHJcbiAgICAgICAgICAgICfXmycsXHJcbiAgICAgICAgICAgICfXmdeYJyxcclxuICAgICAgICAgICAgJ9eZ15cnLFxyXG4gICAgICAgICAgICAn15nXlicsXHJcbiAgICAgICAgICAgICfXmNeWJyxcclxuICAgICAgICAgICAgJ9eY15UnLFxyXG4gICAgICAgICAgICAn15knLFxyXG4gICAgICAgICAgICAn15gnLFxyXG4gICAgICAgICAgICAn15cnLFxyXG4gICAgICAgICAgICAn15YnLFxyXG4gICAgICAgICAgICAn15UnLFxyXG4gICAgICAgICAgICAn15QnLFxyXG4gICAgICAgICAgICAn15MnLFxyXG4gICAgICAgICAgICAn15InLFxyXG4gICAgICAgICAgICAn15EnLFxyXG4gICAgICAgICAgICAn15AnXHJcbiAgICAgICAgXVxyXG4gICAgfTtcclxuICAgIHZhciBHRU9SR0lBTiA9IHtcclxuICAgICAgICBpbnRlZ2VyczogW1xyXG4gICAgICAgICAgICAxMDAwMCxcclxuICAgICAgICAgICAgOTAwMCxcclxuICAgICAgICAgICAgODAwMCxcclxuICAgICAgICAgICAgNzAwMCxcclxuICAgICAgICAgICAgNjAwMCxcclxuICAgICAgICAgICAgNTAwMCxcclxuICAgICAgICAgICAgNDAwMCxcclxuICAgICAgICAgICAgMzAwMCxcclxuICAgICAgICAgICAgMjAwMCxcclxuICAgICAgICAgICAgMTAwMCxcclxuICAgICAgICAgICAgOTAwLFxyXG4gICAgICAgICAgICA4MDAsXHJcbiAgICAgICAgICAgIDcwMCxcclxuICAgICAgICAgICAgNjAwLFxyXG4gICAgICAgICAgICA1MDAsXHJcbiAgICAgICAgICAgIDQwMCxcclxuICAgICAgICAgICAgMzAwLFxyXG4gICAgICAgICAgICAyMDAsXHJcbiAgICAgICAgICAgIDEwMCxcclxuICAgICAgICAgICAgOTAsXHJcbiAgICAgICAgICAgIDgwLFxyXG4gICAgICAgICAgICA3MCxcclxuICAgICAgICAgICAgNjAsXHJcbiAgICAgICAgICAgIDUwLFxyXG4gICAgICAgICAgICA0MCxcclxuICAgICAgICAgICAgMzAsXHJcbiAgICAgICAgICAgIDIwLFxyXG4gICAgICAgICAgICAxMCxcclxuICAgICAgICAgICAgOSxcclxuICAgICAgICAgICAgOCxcclxuICAgICAgICAgICAgNyxcclxuICAgICAgICAgICAgNixcclxuICAgICAgICAgICAgNSxcclxuICAgICAgICAgICAgNCxcclxuICAgICAgICAgICAgMyxcclxuICAgICAgICAgICAgMixcclxuICAgICAgICAgICAgMVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgdmFsdWVzOiBbXHJcbiAgICAgICAgICAgICfhg7UnLFxyXG4gICAgICAgICAgICAn4YOwJyxcclxuICAgICAgICAgICAgJ+GDrycsXHJcbiAgICAgICAgICAgICfhg7QnLFxyXG4gICAgICAgICAgICAn4YOuJyxcclxuICAgICAgICAgICAgJ+GDrScsXHJcbiAgICAgICAgICAgICfhg6wnLFxyXG4gICAgICAgICAgICAn4YOrJyxcclxuICAgICAgICAgICAgJ+GDqicsXHJcbiAgICAgICAgICAgICfhg6knLFxyXG4gICAgICAgICAgICAn4YOoJyxcclxuICAgICAgICAgICAgJ+GDpycsXHJcbiAgICAgICAgICAgICfhg6YnLFxyXG4gICAgICAgICAgICAn4YOlJyxcclxuICAgICAgICAgICAgJ+GDpCcsXHJcbiAgICAgICAgICAgICfhg7MnLFxyXG4gICAgICAgICAgICAn4YOiJyxcclxuICAgICAgICAgICAgJ+GDoScsXHJcbiAgICAgICAgICAgICfhg6AnLFxyXG4gICAgICAgICAgICAn4YOfJyxcclxuICAgICAgICAgICAgJ+GDnicsXHJcbiAgICAgICAgICAgICfhg50nLFxyXG4gICAgICAgICAgICAn4YOyJyxcclxuICAgICAgICAgICAgJ+GDnCcsXHJcbiAgICAgICAgICAgICfhg5snLFxyXG4gICAgICAgICAgICAn4YOaJyxcclxuICAgICAgICAgICAgJ+GDmScsXHJcbiAgICAgICAgICAgICfhg5gnLFxyXG4gICAgICAgICAgICAn4YOXJyxcclxuICAgICAgICAgICAgJ+GDsScsXHJcbiAgICAgICAgICAgICfhg5YnLFxyXG4gICAgICAgICAgICAn4YOVJyxcclxuICAgICAgICAgICAgJ+GDlCcsXHJcbiAgICAgICAgICAgICfhg5MnLFxyXG4gICAgICAgICAgICAn4YOSJyxcclxuICAgICAgICAgICAgJ+GDkScsXHJcbiAgICAgICAgICAgICfhg5AnXHJcbiAgICAgICAgXVxyXG4gICAgfTtcclxuICAgIHZhciBjcmVhdGVBZGRpdGl2ZUNvdW50ZXIgPSBmdW5jdGlvbiAodmFsdWUsIG1pbiwgbWF4LCBzeW1ib2xzLCBmYWxsYmFjaywgc3VmZml4KSB7XHJcbiAgICAgICAgaWYgKHZhbHVlIDwgbWluIHx8IHZhbHVlID4gbWF4KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVDb3VudGVyVGV4dCh2YWx1ZSwgZmFsbGJhY2ssIHN1ZmZpeC5sZW5ndGggPiAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIChzeW1ib2xzLmludGVnZXJzLnJlZHVjZShmdW5jdGlvbiAoc3RyaW5nLCBpbnRlZ2VyLCBpbmRleCkge1xyXG4gICAgICAgICAgICB3aGlsZSAodmFsdWUgPj0gaW50ZWdlcikge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgLT0gaW50ZWdlcjtcclxuICAgICAgICAgICAgICAgIHN0cmluZyArPSBzeW1ib2xzLnZhbHVlc1tpbmRleF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHN0cmluZztcclxuICAgICAgICB9LCAnJykgKyBzdWZmaXgpO1xyXG4gICAgfTtcclxuICAgIHZhciBjcmVhdGVDb3VudGVyU3R5bGVXaXRoU3ltYm9sUmVzb2x2ZXIgPSBmdW5jdGlvbiAodmFsdWUsIGNvZGVQb2ludFJhbmdlTGVuZ3RoLCBpc051bWVyaWMsIHJlc29sdmVyKSB7XHJcbiAgICAgICAgdmFyIHN0cmluZyA9ICcnO1xyXG4gICAgICAgIGRvIHtcclxuICAgICAgICAgICAgaWYgKCFpc051bWVyaWMpIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlLS07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3RyaW5nID0gcmVzb2x2ZXIodmFsdWUpICsgc3RyaW5nO1xyXG4gICAgICAgICAgICB2YWx1ZSAvPSBjb2RlUG9pbnRSYW5nZUxlbmd0aDtcclxuICAgICAgICB9IHdoaWxlICh2YWx1ZSAqIGNvZGVQb2ludFJhbmdlTGVuZ3RoID49IGNvZGVQb2ludFJhbmdlTGVuZ3RoKTtcclxuICAgICAgICByZXR1cm4gc3RyaW5nO1xyXG4gICAgfTtcclxuICAgIHZhciBjcmVhdGVDb3VudGVyU3R5bGVGcm9tUmFuZ2UgPSBmdW5jdGlvbiAodmFsdWUsIGNvZGVQb2ludFJhbmdlU3RhcnQsIGNvZGVQb2ludFJhbmdlRW5kLCBpc051bWVyaWMsIHN1ZmZpeCkge1xyXG4gICAgICAgIHZhciBjb2RlUG9pbnRSYW5nZUxlbmd0aCA9IGNvZGVQb2ludFJhbmdlRW5kIC0gY29kZVBvaW50UmFuZ2VTdGFydCArIDE7XHJcbiAgICAgICAgcmV0dXJuICgodmFsdWUgPCAwID8gJy0nIDogJycpICtcclxuICAgICAgICAgICAgKGNyZWF0ZUNvdW50ZXJTdHlsZVdpdGhTeW1ib2xSZXNvbHZlcihNYXRoLmFicyh2YWx1ZSksIGNvZGVQb2ludFJhbmdlTGVuZ3RoLCBpc051bWVyaWMsIGZ1bmN0aW9uIChjb2RlUG9pbnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmcm9tQ29kZVBvaW50KE1hdGguZmxvb3IoY29kZVBvaW50ICUgY29kZVBvaW50UmFuZ2VMZW5ndGgpICsgY29kZVBvaW50UmFuZ2VTdGFydCk7XHJcbiAgICAgICAgICAgIH0pICtcclxuICAgICAgICAgICAgICAgIHN1ZmZpeCkpO1xyXG4gICAgfTtcclxuICAgIHZhciBjcmVhdGVDb3VudGVyU3R5bGVGcm9tU3ltYm9scyA9IGZ1bmN0aW9uICh2YWx1ZSwgc3ltYm9scywgc3VmZml4KSB7XHJcbiAgICAgICAgaWYgKHN1ZmZpeCA9PT0gdm9pZCAwKSB7IHN1ZmZpeCA9ICcuICc7IH1cclxuICAgICAgICB2YXIgY29kZVBvaW50UmFuZ2VMZW5ndGggPSBzeW1ib2xzLmxlbmd0aDtcclxuICAgICAgICByZXR1cm4gKGNyZWF0ZUNvdW50ZXJTdHlsZVdpdGhTeW1ib2xSZXNvbHZlcihNYXRoLmFicyh2YWx1ZSksIGNvZGVQb2ludFJhbmdlTGVuZ3RoLCBmYWxzZSwgZnVuY3Rpb24gKGNvZGVQb2ludCkgeyByZXR1cm4gc3ltYm9sc1tNYXRoLmZsb29yKGNvZGVQb2ludCAlIGNvZGVQb2ludFJhbmdlTGVuZ3RoKV07IH0pICsgc3VmZml4KTtcclxuICAgIH07XHJcbiAgICB2YXIgQ0pLX1pFUk9TID0gMSA8PCAwO1xyXG4gICAgdmFyIENKS19URU5fQ09FRkZJQ0lFTlRTID0gMSA8PCAxO1xyXG4gICAgdmFyIENKS19URU5fSElHSF9DT0VGRklDSUVOVFMgPSAxIDw8IDI7XHJcbiAgICB2YXIgQ0pLX0hVTkRSRURfQ09FRkZJQ0lFTlRTID0gMSA8PCAzO1xyXG4gICAgdmFyIGNyZWF0ZUNKS0NvdW50ZXIgPSBmdW5jdGlvbiAodmFsdWUsIG51bWJlcnMsIG11bHRpcGxpZXJzLCBuZWdhdGl2ZVNpZ24sIHN1ZmZpeCwgZmxhZ3MpIHtcclxuICAgICAgICBpZiAodmFsdWUgPCAtOTk5OSB8fCB2YWx1ZSA+IDk5OTkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJUZXh0KHZhbHVlLCBMSVNUX1NUWUxFX1RZUEUuQ0pLX0RFQ0lNQUwsIHN1ZmZpeC5sZW5ndGggPiAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIHRtcCA9IE1hdGguYWJzKHZhbHVlKTtcclxuICAgICAgICB2YXIgc3RyaW5nID0gc3VmZml4O1xyXG4gICAgICAgIGlmICh0bXAgPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bWJlcnNbMF0gKyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAodmFyIGRpZ2l0ID0gMDsgdG1wID4gMCAmJiBkaWdpdCA8PSA0OyBkaWdpdCsrKSB7XHJcbiAgICAgICAgICAgIHZhciBjb2VmZmljaWVudCA9IHRtcCAlIDEwO1xyXG4gICAgICAgICAgICBpZiAoY29lZmZpY2llbnQgPT09IDAgJiYgY29udGFpbnMoZmxhZ3MsIENKS19aRVJPUykgJiYgc3RyaW5nICE9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgc3RyaW5nID0gbnVtYmVyc1tjb2VmZmljaWVudF0gKyBzdHJpbmc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoY29lZmZpY2llbnQgPiAxIHx8XHJcbiAgICAgICAgICAgICAgICAoY29lZmZpY2llbnQgPT09IDEgJiYgZGlnaXQgPT09IDApIHx8XHJcbiAgICAgICAgICAgICAgICAoY29lZmZpY2llbnQgPT09IDEgJiYgZGlnaXQgPT09IDEgJiYgY29udGFpbnMoZmxhZ3MsIENKS19URU5fQ09FRkZJQ0lFTlRTKSkgfHxcclxuICAgICAgICAgICAgICAgIChjb2VmZmljaWVudCA9PT0gMSAmJiBkaWdpdCA9PT0gMSAmJiBjb250YWlucyhmbGFncywgQ0pLX1RFTl9ISUdIX0NPRUZGSUNJRU5UUykgJiYgdmFsdWUgPiAxMDApIHx8XHJcbiAgICAgICAgICAgICAgICAoY29lZmZpY2llbnQgPT09IDEgJiYgZGlnaXQgPiAxICYmIGNvbnRhaW5zKGZsYWdzLCBDSktfSFVORFJFRF9DT0VGRklDSUVOVFMpKSkge1xyXG4gICAgICAgICAgICAgICAgc3RyaW5nID0gbnVtYmVyc1tjb2VmZmljaWVudF0gKyAoZGlnaXQgPiAwID8gbXVsdGlwbGllcnNbZGlnaXQgLSAxXSA6ICcnKSArIHN0cmluZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChjb2VmZmljaWVudCA9PT0gMSAmJiBkaWdpdCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHN0cmluZyA9IG11bHRpcGxpZXJzW2RpZ2l0IC0gMV0gKyBzdHJpbmc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdG1wID0gTWF0aC5mbG9vcih0bXAgLyAxMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAodmFsdWUgPCAwID8gbmVnYXRpdmVTaWduIDogJycpICsgc3RyaW5nO1xyXG4gICAgfTtcclxuICAgIHZhciBDSElORVNFX0lORk9STUFMX01VTFRJUExJRVJTID0gJ+WNgeeZvuWNg+iQrCc7XHJcbiAgICB2YXIgQ0hJTkVTRV9GT1JNQUxfTVVMVElQTElFUlMgPSAn5ou+5L2w5Luf6JCsJztcclxuICAgIHZhciBKQVBBTkVTRV9ORUdBVElWRSA9ICfjg57jgqTjg4rjgrknO1xyXG4gICAgdmFyIEtPUkVBTl9ORUdBVElWRSA9ICfrp4jsnbTrhIjsiqQnO1xyXG4gICAgdmFyIGNyZWF0ZUNvdW50ZXJUZXh0ID0gZnVuY3Rpb24gKHZhbHVlLCB0eXBlLCBhcHBlbmRTdWZmaXgpIHtcclxuICAgICAgICB2YXIgZGVmYXVsdFN1ZmZpeCA9IGFwcGVuZFN1ZmZpeCA/ICcuICcgOiAnJztcclxuICAgICAgICB2YXIgY2prU3VmZml4ID0gYXBwZW5kU3VmZml4ID8gJ+OAgScgOiAnJztcclxuICAgICAgICB2YXIga29yZWFuU3VmZml4ID0gYXBwZW5kU3VmZml4ID8gJywgJyA6ICcnO1xyXG4gICAgICAgIHZhciBzcGFjZVN1ZmZpeCA9IGFwcGVuZFN1ZmZpeCA/ICcgJyA6ICcnO1xyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5ESVNDOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICfigKInICsgc3BhY2VTdWZmaXg7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLkNJUkNMRTpcclxuICAgICAgICAgICAgICAgIHJldHVybiAn4pemJyArIHNwYWNlU3VmZml4O1xyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5TUVVBUkU6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+KXvicgKyBzcGFjZVN1ZmZpeDtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuREVDSU1BTF9MRUFESU5HX1pFUk86XHJcbiAgICAgICAgICAgICAgICB2YXIgc3RyaW5nID0gY3JlYXRlQ291bnRlclN0eWxlRnJvbVJhbmdlKHZhbHVlLCA0OCwgNTcsIHRydWUsIGRlZmF1bHRTdWZmaXgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5sZW5ndGggPCA0ID8gXCIwXCIgKyBzdHJpbmcgOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLkNKS19ERUNJTUFMOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJTdHlsZUZyb21TeW1ib2xzKHZhbHVlLCAn44CH5LiA5LqM5LiJ5Zub5LqU5YWt5LiD5YWr5LmdJywgY2prU3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuTE9XRVJfUk9NQU46XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQWRkaXRpdmVDb3VudGVyKHZhbHVlLCAxLCAzOTk5LCBST01BTl9VUFBFUiwgTElTVF9TVFlMRV9UWVBFLkRFQ0lNQUwsIGRlZmF1bHRTdWZmaXgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLlVQUEVSX1JPTUFOOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUFkZGl0aXZlQ291bnRlcih2YWx1ZSwgMSwgMzk5OSwgUk9NQU5fVVBQRVIsIExJU1RfU1RZTEVfVFlQRS5ERUNJTUFMLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuTE9XRVJfR1JFRUs6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVJhbmdlKHZhbHVlLCA5NDUsIDk2OSwgZmFsc2UsIGRlZmF1bHRTdWZmaXgpO1xyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5MT1dFUl9BTFBIQTpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDb3VudGVyU3R5bGVGcm9tUmFuZ2UodmFsdWUsIDk3LCAxMjIsIGZhbHNlLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuVVBQRVJfQUxQSEE6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVJhbmdlKHZhbHVlLCA2NSwgOTAsIGZhbHNlLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuQVJBQklDX0lORElDOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJTdHlsZUZyb21SYW5nZSh2YWx1ZSwgMTYzMiwgMTY0MSwgdHJ1ZSwgZGVmYXVsdFN1ZmZpeCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLkFSTUVOSUFOOlxyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5VUFBFUl9BUk1FTklBTjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVBZGRpdGl2ZUNvdW50ZXIodmFsdWUsIDEsIDk5OTksIEFSTUVOSUFOLCBMSVNUX1NUWUxFX1RZUEUuREVDSU1BTCwgZGVmYXVsdFN1ZmZpeCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLkxPV0VSX0FSTUVOSUFOOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUFkZGl0aXZlQ291bnRlcih2YWx1ZSwgMSwgOTk5OSwgQVJNRU5JQU4sIExJU1RfU1RZTEVfVFlQRS5ERUNJTUFMLCBkZWZhdWx0U3VmZml4KS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5CRU5HQUxJOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJTdHlsZUZyb21SYW5nZSh2YWx1ZSwgMjUzNCwgMjU0MywgdHJ1ZSwgZGVmYXVsdFN1ZmZpeCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLkNBTUJPRElBTjpcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuS0hNRVI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVJhbmdlKHZhbHVlLCA2MTEyLCA2MTIxLCB0cnVlLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuQ0pLX0VBUlRITFlfQlJBTkNIOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJTdHlsZUZyb21TeW1ib2xzKHZhbHVlLCAn5a2Q5LiR5a+F5Y2v6L6w5bez5Y2I5pyq55Sz6YWJ5oiM5LqlJywgY2prU3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuQ0pLX0hFQVZFTkxZX1NURU06XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVN5bWJvbHModmFsdWUsICfnlLLkuZnkuJnkuIHmiIrlt7Hluprovpvlo6znmbgnLCBjamtTdWZmaXgpO1xyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5DSktfSURFT0dSQVBISUM6XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLlRSQURfQ0hJTkVTRV9JTkZPUk1BTDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDSktDb3VudGVyKHZhbHVlLCAn6Zu25LiA5LqM5LiJ5Zub5LqU5YWt5LiD5YWr5LmdJywgQ0hJTkVTRV9JTkZPUk1BTF9NVUxUSVBMSUVSUywgJ+iyoCcsIGNqa1N1ZmZpeCwgQ0pLX1RFTl9DT0VGRklDSUVOVFMgfCBDSktfVEVOX0hJR0hfQ09FRkZJQ0lFTlRTIHwgQ0pLX0hVTkRSRURfQ09FRkZJQ0lFTlRTKTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuVFJBRF9DSElORVNFX0ZPUk1BTDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDSktDb3VudGVyKHZhbHVlLCAn6Zu25aO56LKz5Y+D6IKG5LyN6Zm45p+S5o2M546WJywgQ0hJTkVTRV9GT1JNQUxfTVVMVElQTElFUlMsICfosqAnLCBjamtTdWZmaXgsIENKS19aRVJPUyB8IENKS19URU5fQ09FRkZJQ0lFTlRTIHwgQ0pLX1RFTl9ISUdIX0NPRUZGSUNJRU5UUyB8IENKS19IVU5EUkVEX0NPRUZGSUNJRU5UUyk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLlNJTVBfQ0hJTkVTRV9JTkZPUk1BTDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDSktDb3VudGVyKHZhbHVlLCAn6Zu25LiA5LqM5LiJ5Zub5LqU5YWt5LiD5YWr5LmdJywgQ0hJTkVTRV9JTkZPUk1BTF9NVUxUSVBMSUVSUywgJ+i0nycsIGNqa1N1ZmZpeCwgQ0pLX1RFTl9DT0VGRklDSUVOVFMgfCBDSktfVEVOX0hJR0hfQ09FRkZJQ0lFTlRTIHwgQ0pLX0hVTkRSRURfQ09FRkZJQ0lFTlRTKTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuU0lNUF9DSElORVNFX0ZPUk1BTDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDSktDb3VudGVyKHZhbHVlLCAn6Zu25aO56LSw5Y+B6IKG5LyN6ZmG5p+S5o2M546WJywgQ0hJTkVTRV9GT1JNQUxfTVVMVElQTElFUlMsICfotJ8nLCBjamtTdWZmaXgsIENKS19aRVJPUyB8IENKS19URU5fQ09FRkZJQ0lFTlRTIHwgQ0pLX1RFTl9ISUdIX0NPRUZGSUNJRU5UUyB8IENKS19IVU5EUkVEX0NPRUZGSUNJRU5UUyk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLkpBUEFORVNFX0lORk9STUFMOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNKS0NvdW50ZXIodmFsdWUsICfjgIfkuIDkuozkuInlm5vkupTlha3kuIPlhavkuZ0nLCAn5Y2B55m+5Y2D5LiHJywgSkFQQU5FU0VfTkVHQVRJVkUsIGNqa1N1ZmZpeCwgMCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLkpBUEFORVNFX0ZPUk1BTDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDSktDb3VudGVyKHZhbHVlLCAn6Zu25aOx5byQ5Y+C5Zub5LyN5YWt5LiD5YWr5LmdJywgJ+aLvueZvuWNg+S4hycsIEpBUEFORVNFX05FR0FUSVZFLCBjamtTdWZmaXgsIENKS19aRVJPUyB8IENKS19URU5fQ09FRkZJQ0lFTlRTIHwgQ0pLX1RFTl9ISUdIX0NPRUZGSUNJRU5UUyk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLktPUkVBTl9IQU5HVUxfRk9STUFMOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNKS0NvdW50ZXIodmFsdWUsICfsmIHsnbzsnbTsgrzsgqzsmKTsnKHsuaDtjJTqtawnLCAn7Iut67Cx7LKc66eMJywgS09SRUFOX05FR0FUSVZFLCBrb3JlYW5TdWZmaXgsIENKS19aRVJPUyB8IENKS19URU5fQ09FRkZJQ0lFTlRTIHwgQ0pLX1RFTl9ISUdIX0NPRUZGSUNJRU5UUyk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLktPUkVBTl9IQU5KQV9JTkZPUk1BTDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDSktDb3VudGVyKHZhbHVlLCAn6Zu25LiA5LqM5LiJ5Zub5LqU5YWt5LiD5YWr5LmdJywgJ+WNgeeZvuWNg+iQrCcsIEtPUkVBTl9ORUdBVElWRSwga29yZWFuU3VmZml4LCAwKTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuS09SRUFOX0hBTkpBX0ZPUk1BTDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDSktDb3VudGVyKHZhbHVlLCAn6Zu25aO56LKz5Y+D5Zub5LqU5YWt5LiD5YWr5LmdJywgJ+aLvueZvuWNgycsIEtPUkVBTl9ORUdBVElWRSwga29yZWFuU3VmZml4LCBDSktfWkVST1MgfCBDSktfVEVOX0NPRUZGSUNJRU5UUyB8IENKS19URU5fSElHSF9DT0VGRklDSUVOVFMpO1xyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5ERVZBTkFHQVJJOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJTdHlsZUZyb21SYW5nZSh2YWx1ZSwgMHg5NjYsIDB4OTZmLCB0cnVlLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuR0VPUkdJQU46XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQWRkaXRpdmVDb3VudGVyKHZhbHVlLCAxLCAxOTk5OSwgR0VPUkdJQU4sIExJU1RfU1RZTEVfVFlQRS5ERUNJTUFMLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuR1VKQVJBVEk6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVJhbmdlKHZhbHVlLCAweGFlNiwgMHhhZWYsIHRydWUsIGRlZmF1bHRTdWZmaXgpO1xyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5HVVJNVUtISTpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDb3VudGVyU3R5bGVGcm9tUmFuZ2UodmFsdWUsIDB4YTY2LCAweGE2ZiwgdHJ1ZSwgZGVmYXVsdFN1ZmZpeCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLkhFQlJFVzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVBZGRpdGl2ZUNvdW50ZXIodmFsdWUsIDEsIDEwOTk5LCBIRUJSRVcsIExJU1RfU1RZTEVfVFlQRS5ERUNJTUFMLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuSElSQUdBTkE6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVN5bWJvbHModmFsdWUsICfjgYLjgYTjgYbjgYjjgYrjgYvjgY3jgY/jgZHjgZPjgZXjgZfjgZnjgZvjgZ3jgZ/jgaHjgaTjgabjgajjgarjgavjgazjga3jga7jga/jgbLjgbXjgbjjgbvjgb7jgb/jgoDjgoHjgoLjgoTjgobjgojjgonjgorjgovjgozjgo3jgo/jgpDjgpHjgpLjgpMnKTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuSElSQUdBTkFfSVJPSEE6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVN5bWJvbHModmFsdWUsICfjgYTjgo3jga/jgavjgbvjgbjjgajjgaHjgorjgazjgovjgpLjgo/jgYvjgojjgZ/jgozjgZ3jgaTjga3jgarjgonjgoDjgYbjgpDjga7jgYrjgY/jgoTjgb7jgZHjgbXjgZPjgYjjgabjgYLjgZXjgY3jgobjgoHjgb/jgZfjgpHjgbLjgoLjgZvjgZknKTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuS0FOTkFEQTpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDb3VudGVyU3R5bGVGcm9tUmFuZ2UodmFsdWUsIDB4Y2U2LCAweGNlZiwgdHJ1ZSwgZGVmYXVsdFN1ZmZpeCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLktBVEFLQU5BOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJTdHlsZUZyb21TeW1ib2xzKHZhbHVlLCAn44Ki44Kk44Km44Ko44Kq44Kr44Kt44Kv44Kx44Kz44K144K344K544K744K944K/44OB44OE44OG44OI44OK44OL44OM44ON44OO44OP44OS44OV44OY44Ob44Oe44Of44Og44Oh44Oi44Ok44Om44Oo44Op44Oq44Or44Os44Ot44Ov44Ow44Ox44Oy44OzJywgY2prU3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuS0FUQUtBTkFfSVJPSEE6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVN5bWJvbHModmFsdWUsICfjgqTjg63jg4/jg4vjg5vjg5jjg4jjg4Hjg6rjg4zjg6vjg7Ljg6/jgqvjg6jjgr/jg6zjgr3jg4Tjg43jg4rjg6njg6Djgqbjg7Djg47jgqrjgq/jg6Tjg57jgrHjg5XjgrPjgqjjg4bjgqLjgrXjgq3jg6bjg6Hjg5/jgrfjg7Hjg5Ljg6LjgrvjgrknLCBjamtTdWZmaXgpO1xyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5MQU86XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVJhbmdlKHZhbHVlLCAweGVkMCwgMHhlZDksIHRydWUsIGRlZmF1bHRTdWZmaXgpO1xyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5NT05HT0xJQU46XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVJhbmdlKHZhbHVlLCAweDE4MTAsIDB4MTgxOSwgdHJ1ZSwgZGVmYXVsdFN1ZmZpeCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLk1ZQU5NQVI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVJhbmdlKHZhbHVlLCAweDEwNDAsIDB4MTA0OSwgdHJ1ZSwgZGVmYXVsdFN1ZmZpeCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLk9SSVlBOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJTdHlsZUZyb21SYW5nZSh2YWx1ZSwgMHhiNjYsIDB4YjZmLCB0cnVlLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuUEVSU0lBTjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDb3VudGVyU3R5bGVGcm9tUmFuZ2UodmFsdWUsIDB4NmYwLCAweDZmOSwgdHJ1ZSwgZGVmYXVsdFN1ZmZpeCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLlRBTUlMOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJTdHlsZUZyb21SYW5nZSh2YWx1ZSwgMHhiZTYsIDB4YmVmLCB0cnVlLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuVEVMVUdVOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJTdHlsZUZyb21SYW5nZSh2YWx1ZSwgMHhjNjYsIDB4YzZmLCB0cnVlLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICAgICAgY2FzZSBMSVNUX1NUWUxFX1RZUEUuVEhBSTpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDb3VudGVyU3R5bGVGcm9tUmFuZ2UodmFsdWUsIDB4ZTUwLCAweGU1OSwgdHJ1ZSwgZGVmYXVsdFN1ZmZpeCk7XHJcbiAgICAgICAgICAgIGNhc2UgTElTVF9TVFlMRV9UWVBFLlRJQkVUQU46XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ291bnRlclN0eWxlRnJvbVJhbmdlKHZhbHVlLCAweGYyMCwgMHhmMjksIHRydWUsIGRlZmF1bHRTdWZmaXgpO1xyXG4gICAgICAgICAgICBjYXNlIExJU1RfU1RZTEVfVFlQRS5ERUNJTUFMOlxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50ZXJTdHlsZUZyb21SYW5nZSh2YWx1ZSwgNDgsIDU3LCB0cnVlLCBkZWZhdWx0U3VmZml4KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xuXG4gICAgdmFyIElHTk9SRV9BVFRSSUJVVEUgPSAnZGF0YS1odG1sMmNhbnZhcy1pZ25vcmUnO1xyXG4gICAgdmFyIERvY3VtZW50Q2xvbmVyID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIERvY3VtZW50Q2xvbmVyKGVsZW1lbnQsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxlZEVsZW1lbnRzID0gW107XHJcbiAgICAgICAgICAgIHRoaXMucmVmZXJlbmNlRWxlbWVudCA9IGVsZW1lbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRlcnMgPSBuZXcgQ291bnRlclN0YXRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMucXVvdGVEZXB0aCA9IDA7XHJcbiAgICAgICAgICAgIGlmICghZWxlbWVudC5vd25lckRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nsb25lZCBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4gb3duZXIgZG9jdW1lbnQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50RWxlbWVudCA9IHRoaXMuY2xvbmVOb2RlKGVsZW1lbnQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBEb2N1bWVudENsb25lci5wcm90b3R5cGUudG9JRnJhbWUgPSBmdW5jdGlvbiAob3duZXJEb2N1bWVudCwgd2luZG93U2l6ZSkge1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgICAgICB2YXIgaWZyYW1lID0gY3JlYXRlSUZyYW1lQ29udGFpbmVyKG93bmVyRG9jdW1lbnQsIHdpbmRvd1NpemUpO1xyXG4gICAgICAgICAgICBpZiAoIWlmcmFtZS5jb250ZW50V2luZG93KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXCJVbmFibGUgdG8gZmluZCBpZnJhbWUgd2luZG93XCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBzY3JvbGxYID0gb3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5wYWdlWE9mZnNldDtcclxuICAgICAgICAgICAgdmFyIHNjcm9sbFkgPSBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LnBhZ2VZT2Zmc2V0O1xyXG4gICAgICAgICAgICB2YXIgY2xvbmVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdztcclxuICAgICAgICAgICAgdmFyIGRvY3VtZW50Q2xvbmUgPSBjbG9uZVdpbmRvdy5kb2N1bWVudDtcclxuICAgICAgICAgICAgLyogQ2hyb21lIGRvZXNuJ3QgZGV0ZWN0IHJlbGF0aXZlIGJhY2tncm91bmQtaW1hZ2VzIGFzc2lnbmVkIGluIGlubGluZSA8c3R5bGU+IHNoZWV0cyB3aGVuIGZldGNoZWQgdGhyb3VnaCBnZXRDb21wdXRlZFN0eWxlXHJcbiAgICAgICAgICAgICBpZiB3aW5kb3cgdXJsIGlzIGFib3V0OmJsYW5rLCB3ZSBjYW4gYXNzaWduIHRoZSB1cmwgdG8gY3VycmVudCBieSB3cml0aW5nIG9udG8gdGhlIGRvY3VtZW50XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB2YXIgaWZyYW1lTG9hZCA9IGlmcmFtZUxvYWRlcihpZnJhbWUpLnRoZW4oZnVuY3Rpb24gKCkgeyByZXR1cm4gX19hd2FpdGVyKF90aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG9uY2xvbmU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChfYS5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbGVkRWxlbWVudHMuZm9yRWFjaChyZXN0b3JlTm9kZVNjcm9sbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2xvbmVXaW5kb3cpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9uZVdpbmRvdy5zY3JvbGxUbyh3aW5kb3dTaXplLmxlZnQsIHdpbmRvd1NpemUudG9wKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLyhpUGFkfGlQaG9uZXxpUG9kKS9nLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb25lV2luZG93LnNjcm9sbFkgIT09IHdpbmRvd1NpemUudG9wIHx8IGNsb25lV2luZG93LnNjcm9sbFggIT09IHdpbmRvd1NpemUubGVmdCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRDbG9uZS5kb2N1bWVudEVsZW1lbnQuc3R5bGUudG9wID0gLXdpbmRvd1NpemUudG9wICsgJ3B4JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRDbG9uZS5kb2N1bWVudEVsZW1lbnQuc3R5bGUubGVmdCA9IC13aW5kb3dTaXplLmxlZnQgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudENsb25lLmRvY3VtZW50RWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jbG9uZSA9IHRoaXMub3B0aW9ucy5vbmNsb25lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNsb25lZFJlZmVyZW5jZUVsZW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi8sIFByb21pc2UucmVqZWN0KFwiRXJyb3IgZmluZGluZyB0aGUgXCIgKyB0aGlzLnJlZmVyZW5jZUVsZW1lbnQubm9kZU5hbWUgKyBcIiBpbiB0aGUgY2xvbmVkIGRvY3VtZW50XCIpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGRvY3VtZW50Q2xvbmUuZm9udHMgJiYgZG9jdW1lbnRDbG9uZS5mb250cy5yZWFkeSkpIHJldHVybiBbMyAvKmJyZWFrKi8sIDJdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgZG9jdW1lbnRDbG9uZS5mb250cy5yZWFkeV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9hLmxhYmVsID0gMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvbmNsb25lID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi8sIFByb21pc2UucmVzb2x2ZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiBvbmNsb25lKGRvY3VtZW50Q2xvbmUpOyB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeyByZXR1cm4gaWZyYW1lOyB9KV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgaWZyYW1lXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7IH0pO1xyXG4gICAgICAgICAgICBkb2N1bWVudENsb25lLm9wZW4oKTtcclxuICAgICAgICAgICAgZG9jdW1lbnRDbG9uZS53cml0ZShzZXJpYWxpemVEb2N0eXBlKGRvY3VtZW50LmRvY3R5cGUpICsgXCI8aHRtbD48L2h0bWw+XCIpO1xyXG4gICAgICAgICAgICAvLyBDaHJvbWUgc2Nyb2xscyB0aGUgcGFyZW50IGRvY3VtZW50IGZvciBzb21lIHJlYXNvbiBhZnRlciB0aGUgd3JpdGUgdG8gdGhlIGNsb25lZCB3aW5kb3c/Pz9cclxuICAgICAgICAgICAgcmVzdG9yZU93bmVyU2Nyb2xsKHRoaXMucmVmZXJlbmNlRWxlbWVudC5vd25lckRvY3VtZW50LCBzY3JvbGxYLCBzY3JvbGxZKTtcclxuICAgICAgICAgICAgZG9jdW1lbnRDbG9uZS5yZXBsYWNlQ2hpbGQoZG9jdW1lbnRDbG9uZS5hZG9wdE5vZGUodGhpcy5kb2N1bWVudEVsZW1lbnQpLCBkb2N1bWVudENsb25lLmRvY3VtZW50RWxlbWVudCk7XHJcbiAgICAgICAgICAgIGRvY3VtZW50Q2xvbmUuY2xvc2UoKTtcclxuICAgICAgICAgICAgcmV0dXJuIGlmcmFtZUxvYWQ7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBEb2N1bWVudENsb25lci5wcm90b3R5cGUuY3JlYXRlRWxlbWVudENsb25lID0gZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgICAgICAgICAgaWYgKGlzQ2FudmFzRWxlbWVudChub2RlKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ2FudmFzQ2xvbmUobm9kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLypcclxuICAgICAgICAgICAgaWYgKGlzSUZyYW1lRWxlbWVudChub2RlKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlSUZyYW1lQ2xvbmUobm9kZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICovXHJcbiAgICAgICAgICAgIGlmIChpc1N0eWxlRWxlbWVudChub2RlKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU3R5bGVDbG9uZShub2RlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbm9kZS5jbG9uZU5vZGUoZmFsc2UpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgRG9jdW1lbnRDbG9uZXIucHJvdG90eXBlLmNyZWF0ZVN0eWxlQ2xvbmUgPSBmdW5jdGlvbiAobm9kZSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHNoZWV0ID0gbm9kZS5zaGVldDtcclxuICAgICAgICAgICAgICAgIGlmIChzaGVldCAmJiBzaGVldC5jc3NSdWxlcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjc3MgPSBbXS5zbGljZS5jYWxsKHNoZWV0LmNzc1J1bGVzLCAwKS5yZWR1Y2UoZnVuY3Rpb24gKGNzcywgcnVsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVsZSAmJiB0eXBlb2YgcnVsZS5jc3NUZXh0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNzcyArIHJ1bGUuY3NzVGV4dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3NzO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sICcnKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBub2RlLmNsb25lTm9kZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUudGV4dENvbnRlbnQgPSBjc3M7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0eWxlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBhY2Nlc3Npbmcgbm9kZS5zaGVldC5jc3NSdWxlcyB0aHJvd3MgYSBET01FeGNlcHRpb25cclxuICAgICAgICAgICAgICAgIExvZ2dlci5nZXRJbnN0YW5jZSh0aGlzLm9wdGlvbnMuaWQpLmVycm9yKCdVbmFibGUgdG8gYWNjZXNzIGNzc1J1bGVzIHByb3BlcnR5JywgZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZS5uYW1lICE9PSAnU2VjdXJpdHlFcnJvcicpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBub2RlLmNsb25lTm9kZShmYWxzZSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBEb2N1bWVudENsb25lci5wcm90b3R5cGUuY3JlYXRlQ2FudmFzQ2xvbmUgPSBmdW5jdGlvbiAoY2FudmFzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW5saW5lSW1hZ2VzICYmIGNhbnZhcy5vd25lckRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgaW1nID0gY2FudmFzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGltZy5zcmMgPSBjYW52YXMudG9EYXRhVVJMKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGltZztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyLmdldEluc3RhbmNlKHRoaXMub3B0aW9ucy5pZCkuaW5mbyhcIlVuYWJsZSB0byBjbG9uZSBjYW52YXMgY29udGVudHMsIGNhbnZhcyBpcyB0YWludGVkXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBjbG9uZWRDYW52YXMgPSBjYW52YXMuY2xvbmVOb2RlKGZhbHNlKTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNsb25lZENhbnZhcy53aWR0aCA9IGNhbnZhcy53aWR0aDtcclxuICAgICAgICAgICAgICAgIGNsb25lZENhbnZhcy5oZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGNsb25lZEN0eCA9IGNsb25lZENhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNsb25lZEN0eCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjdHgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xvbmVkQ3R4LnB1dEltYWdlRGF0YShjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCksIDAsIDApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xvbmVkQ3R4LmRyYXdJbWFnZShjYW52YXMsIDAsIDApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBjbG9uZWRDYW52YXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2F0Y2ggKGUpIHsgfVxyXG4gICAgICAgICAgICByZXR1cm4gY2xvbmVkQ2FudmFzO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgLypcclxuICAgICAgICBjcmVhdGVJRnJhbWVDbG9uZShpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRlbXBJZnJhbWUgPSA8SFRNTElGcmFtZUVsZW1lbnQ+aWZyYW1lLmNsb25lTm9kZShmYWxzZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZUtleSA9IGdlbmVyYXRlSWZyYW1lS2V5KCk7XHJcbiAgICAgICAgICAgIHRlbXBJZnJhbWUuc2V0QXR0cmlidXRlKCdkYXRhLWh0bWwyY2FudmFzLWludGVybmFsLWlmcmFtZS1rZXknLCBpZnJhbWVLZXkpO1xyXG5cbiAgICAgICAgICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IHBhcnNlQm91bmRzKGlmcmFtZSk7XHJcblxuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZUxvYWRlci5jYWNoZVtpZnJhbWVLZXldID0gZ2V0SWZyYW1lRG9jdW1lbnRFbGVtZW50KGlmcmFtZSwgdGhpcy5vcHRpb25zKVxyXG4gICAgICAgICAgICAgICAgLnRoZW4oZG9jdW1lbnRFbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRFbGVtZW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd1RhaW50OiB0aGlzLm9wdGlvbnMuYWxsb3dUYWludCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VUaW1lb3V0OiB0aGlzLm9wdGlvbnMuaW1hZ2VUaW1lb3V0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2luZzogdGhpcy5vcHRpb25zLmxvZ2dpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm94eTogdGhpcy5vcHRpb25zLnByb3h5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ29udGFpbmVyOiB0aGlzLm9wdGlvbnMucmVtb3ZlQ29udGFpbmVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGU6IHRoaXMub3B0aW9ucy5zY2FsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVpZ25PYmplY3RSZW5kZXJpbmc6IHRoaXMub3B0aW9ucy5mb3JlaWduT2JqZWN0UmVuZGVyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlQ09SUzogdGhpcy5vcHRpb25zLnVzZUNPUlMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IG5ldyBDYW52YXNSZW5kZXJlcigpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd1dpZHRoOiBkb2N1bWVudEVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5pbm5lcldpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93SGVpZ2h0OiBkb2N1bWVudEVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5pbm5lckhlaWdodCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFg6IGRvY3VtZW50RWxlbWVudC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LnBhZ2VYT2Zmc2V0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsWTogZG9jdW1lbnRFbGVtZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcucGFnZVlPZmZzZXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgICAgICAgICAgIChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50KSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpZnJhbWVDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUNhbnZhcy5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKGNhbnZhcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVDYW52YXMub25lcnJvciA9IChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVtcHR5IGlmcmFtZXMgbWF5IHJlc3VsdCBpbiBlbXB0eSBcImRhdGE6LFwiIFVSTHMsIHdoaWNoIGFyZSBpbnZhbGlkIGZyb20gdGhlIDxpbWc+J3MgcG9pbnQgb2Ygdmlld1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBpbnN0ZWFkIG9mIGBvbmxvYWRgIGNhdXNlIGBvbmVycm9yYCBhbmQgdW5oYW5kbGVkIHJlamVjdGlvbiB3YXJuaW5nc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWtsYXN2aC9odG1sMmNhbnZhcy9pc3N1ZXMvMTUwMlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUNhbnZhcy5zcmMgPT0gJ2RhdGE6LCcgPyByZXNvbHZlKGNhbnZhcykgOiByZWplY3QoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUNhbnZhcy5zcmMgPSBjYW52YXMudG9EYXRhVVJMKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVtcElmcmFtZS5wYXJlbnROb2RlICYmIGlmcmFtZS5vd25lckRvY3VtZW50ICYmIGlmcmFtZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcElmcmFtZS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weUNTU1N0eWxlcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoaWZyYW1lKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUNhbnZhc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wSWZyYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHJldHVybiB0ZW1wSWZyYW1lO1xyXG4gICAgICAgIH1cclxuICAgICovXHJcbiAgICAgICAgRG9jdW1lbnRDbG9uZXIucHJvdG90eXBlLmNsb25lTm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1RleHROb2RlKG5vZGUpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobm9kZS5kYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIW5vZGUub3duZXJEb2N1bWVudCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuY2xvbmVOb2RlKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgd2luZG93ID0gbm9kZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O1xyXG4gICAgICAgICAgICBpZiAoaXNIVE1MRWxlbWVudE5vZGUobm9kZSkgJiYgd2luZG93KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY2xvbmUgPSB0aGlzLmNyZWF0ZUVsZW1lbnRDbG9uZShub2RlKTtcclxuICAgICAgICAgICAgICAgIHZhciBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHN0eWxlQmVmb3JlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSwgJzpiZWZvcmUnKTtcclxuICAgICAgICAgICAgICAgIHZhciBzdHlsZUFmdGVyID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSwgJzphZnRlcicpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVmZXJlbmNlRWxlbWVudCA9PT0gbm9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvbmVkUmVmZXJlbmNlRWxlbWVudCA9IGNsb25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGlzQm9keUVsZW1lbnQoY2xvbmUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlUHNldWRvSGlkZVN0eWxlcyhjbG9uZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YXIgY291bnRlcnMgPSB0aGlzLmNvdW50ZXJzLnBhcnNlKG5ldyBDU1NQYXJzZWRDb3VudGVyRGVjbGFyYXRpb24oc3R5bGUpKTtcclxuICAgICAgICAgICAgICAgIHZhciBiZWZvcmUgPSB0aGlzLnJlc29sdmVQc2V1ZG9Db250ZW50KG5vZGUsIGNsb25lLCBzdHlsZUJlZm9yZSwgUHNldWRvRWxlbWVudFR5cGUuQkVGT1JFKTtcclxuICAgICAgICAgICAgICAgIGZvciAodmFyIGNoaWxkID0gbm9kZS5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNFbGVtZW50Tm9kZShjaGlsZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKCFpc1NjcmlwdEVsZW1lbnQoY2hpbGQpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhY2hpbGQuaGFzQXR0cmlidXRlKElHTk9SRV9BVFRSSUJVVEUpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIHRoaXMub3B0aW9ucy5pZ25vcmVFbGVtZW50cyAhPT0gJ2Z1bmN0aW9uJyB8fCAhdGhpcy5vcHRpb25zLmlnbm9yZUVsZW1lbnRzKGNoaWxkKSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zLmNvcHlTdHlsZXMgfHwgIWlzRWxlbWVudE5vZGUoY2hpbGQpIHx8ICFpc1N0eWxlRWxlbWVudChjaGlsZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb25lLmFwcGVuZENoaWxkKHRoaXMuY2xvbmVOb2RlKGNoaWxkKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoYmVmb3JlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xvbmUuaW5zZXJ0QmVmb3JlKGJlZm9yZSwgY2xvbmUuZmlyc3RDaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB2YXIgYWZ0ZXIgPSB0aGlzLnJlc29sdmVQc2V1ZG9Db250ZW50KG5vZGUsIGNsb25lLCBzdHlsZUFmdGVyLCBQc2V1ZG9FbGVtZW50VHlwZS5BRlRFUik7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWZ0ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbG9uZS5hcHBlbmRDaGlsZChhZnRlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ZXJzLnBvcChjb3VudGVycyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3R5bGUgJiYgdGhpcy5vcHRpb25zLmNvcHlTdHlsZXMgJiYgIWlzSUZyYW1lRWxlbWVudChub2RlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvcHlDU1NTdHlsZXMoc3R5bGUsIGNsb25lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vdGhpcy5pbmxpbmVBbGxJbWFnZXMoY2xvbmUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuc2Nyb2xsVG9wICE9PSAwIHx8IG5vZGUuc2Nyb2xsTGVmdCAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsZWRFbGVtZW50cy5wdXNoKFtjbG9uZSwgbm9kZS5zY3JvbGxMZWZ0LCBub2RlLnNjcm9sbFRvcF0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKChpc1RleHRhcmVhRWxlbWVudChub2RlKSB8fCBpc1NlbGVjdEVsZW1lbnQobm9kZSkpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgKGlzVGV4dGFyZWFFbGVtZW50KGNsb25lKSB8fCBpc1NlbGVjdEVsZW1lbnQoY2xvbmUpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsb25lLnZhbHVlID0gbm9kZS52YWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBjbG9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbm9kZS5jbG9uZU5vZGUoZmFsc2UpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgRG9jdW1lbnRDbG9uZXIucHJvdG90eXBlLnJlc29sdmVQc2V1ZG9Db250ZW50ID0gZnVuY3Rpb24gKG5vZGUsIGNsb25lLCBzdHlsZSwgcHNldWRvRWx0KSB7XHJcbiAgICAgICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAgICAgICAgIGlmICghc3R5bGUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZS5jb250ZW50O1xyXG4gICAgICAgICAgICB2YXIgZG9jdW1lbnQgPSBjbG9uZS5vd25lckRvY3VtZW50O1xyXG4gICAgICAgICAgICBpZiAoIWRvY3VtZW50IHx8ICF2YWx1ZSB8fCB2YWx1ZSA9PT0gJ25vbmUnIHx8IHZhbHVlID09PSAnLW1vei1hbHQtY29udGVudCcgfHwgc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jb3VudGVycy5wYXJzZShuZXcgQ1NTUGFyc2VkQ291bnRlckRlY2xhcmF0aW9uKHN0eWxlKSk7XHJcbiAgICAgICAgICAgIHZhciBkZWNsYXJhdGlvbiA9IG5ldyBDU1NQYXJzZWRQc2V1ZG9EZWNsYXJhdGlvbihzdHlsZSk7XHJcbiAgICAgICAgICAgIHZhciBhbm9ueW1vdXNSZXBsYWNlZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdodG1sMmNhbnZhc3BzZXVkb2VsZW1lbnQnKTtcclxuICAgICAgICAgICAgY29weUNTU1N0eWxlcyhzdHlsZSwgYW5vbnltb3VzUmVwbGFjZWRFbGVtZW50KTtcclxuICAgICAgICAgICAgZGVjbGFyYXRpb24uY29udGVudC5mb3JFYWNoKGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5TVFJJTkdfVE9LRU4pIHtcclxuICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXNSZXBsYWNlZEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodG9rZW4udmFsdWUpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuVHlwZS5VUkxfVE9LRU4pIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1nLnNyYyA9IHRva2VuLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGltZy5zdHlsZS5vcGFjaXR5ID0gJzEnO1xyXG4gICAgICAgICAgICAgICAgICAgIGFub255bW91c1JlcGxhY2VkRWxlbWVudC5hcHBlbmRDaGlsZChpbWcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5UeXBlLkZVTkNUSU9OKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuLm5hbWUgPT09ICdhdHRyJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXR0ciA9IHRva2VuLnZhbHVlcy5maWx0ZXIoaXNJZGVudFRva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHIubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXNSZXBsYWNlZEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobm9kZS5nZXRBdHRyaWJ1dGUoYXR0clswXS52YWx1ZSkgfHwgJycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi5uYW1lID09PSAnY291bnRlcicpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hID0gdG9rZW4udmFsdWVzLmZpbHRlcihub25GdW5jdGlvbkFyZ1NlcGFyYXRvciksIGNvdW50ZXIgPSBfYVswXSwgY291bnRlclN0eWxlID0gX2FbMV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudGVyICYmIGlzSWRlbnRUb2tlbihjb3VudGVyKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNvdW50ZXJTdGF0ZSA9IF90aGlzLmNvdW50ZXJzLmdldENvdW50ZXJWYWx1ZShjb3VudGVyLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb3VudGVyVHlwZSA9IGNvdW50ZXJTdHlsZSAmJiBpc0lkZW50VG9rZW4oY291bnRlclN0eWxlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbGlzdFN0eWxlVHlwZS5wYXJzZShjb3VudGVyU3R5bGUudmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBMSVNUX1NUWUxFX1RZUEUuREVDSU1BTDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91c1JlcGxhY2VkRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjcmVhdGVDb3VudGVyVGV4dChjb3VudGVyU3RhdGUsIGNvdW50ZXJUeXBlLCBmYWxzZSkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi5uYW1lID09PSAnY291bnRlcnMnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYiA9IHRva2VuLnZhbHVlcy5maWx0ZXIobm9uRnVuY3Rpb25BcmdTZXBhcmF0b3IpLCBjb3VudGVyID0gX2JbMF0sIGRlbGltID0gX2JbMV0sIGNvdW50ZXJTdHlsZSA9IF9iWzJdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnRlciAmJiBpc0lkZW50VG9rZW4oY291bnRlcikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb3VudGVyU3RhdGVzID0gX3RoaXMuY291bnRlcnMuZ2V0Q291bnRlclZhbHVlcyhjb3VudGVyLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjb3VudGVyVHlwZV8xID0gY291bnRlclN0eWxlICYmIGlzSWRlbnRUb2tlbihjb3VudGVyU3R5bGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBsaXN0U3R5bGVUeXBlLnBhcnNlKGNvdW50ZXJTdHlsZS52YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IExJU1RfU1RZTEVfVFlQRS5ERUNJTUFMO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNlcGFyYXRvciA9IGRlbGltICYmIGRlbGltLnR5cGUgPT09IFRva2VuVHlwZS5TVFJJTkdfVE9LRU4gPyBkZWxpbS52YWx1ZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBjb3VudGVyU3RhdGVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAodmFsdWUpIHsgcmV0dXJuIGNyZWF0ZUNvdW50ZXJUZXh0KHZhbHVlLCBjb3VudGVyVHlwZV8xLCBmYWxzZSk7IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oc2VwYXJhdG9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91c1JlcGxhY2VkRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSBUb2tlblR5cGUuSURFTlRfVE9LRU4pIHtcclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ29wZW4tcXVvdGUnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzUmVwbGFjZWRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGdldFF1b3RlKGRlY2xhcmF0aW9uLnF1b3RlcywgX3RoaXMucXVvdGVEZXB0aCsrLCB0cnVlKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Nsb3NlLXF1b3RlJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91c1JlcGxhY2VkRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnZXRRdW90ZShkZWNsYXJhdGlvbi5xdW90ZXMsIC0tX3RoaXMucXVvdGVEZXB0aCwgZmFsc2UpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNhZmFyaSBkb2Vzbid0IHBhcnNlIHN0cmluZyB0b2tlbnMgY29ycmVjdGx5IGJlY2F1c2Ugb2YgbGFjayBvZiBxdW90ZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91c1JlcGxhY2VkRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0b2tlbi52YWx1ZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGFub255bW91c1JlcGxhY2VkRWxlbWVudC5jbGFzc05hbWUgPSBQU0VVRE9fSElERV9FTEVNRU5UX0NMQVNTX0JFRk9SRSArIFwiIFwiICsgUFNFVURPX0hJREVfRUxFTUVOVF9DTEFTU19BRlRFUjtcclxuICAgICAgICAgICAgY2xvbmUuY2xhc3NOYW1lICs9XHJcbiAgICAgICAgICAgICAgICBwc2V1ZG9FbHQgPT09IFBzZXVkb0VsZW1lbnRUeXBlLkJFRk9SRVxyXG4gICAgICAgICAgICAgICAgICAgID8gXCIgXCIgKyBQU0VVRE9fSElERV9FTEVNRU5UX0NMQVNTX0JFRk9SRVxyXG4gICAgICAgICAgICAgICAgICAgIDogXCIgXCIgKyBQU0VVRE9fSElERV9FTEVNRU5UX0NMQVNTX0FGVEVSO1xyXG4gICAgICAgICAgICByZXR1cm4gYW5vbnltb3VzUmVwbGFjZWRFbGVtZW50O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgRG9jdW1lbnRDbG9uZXIuZGVzdHJveSA9IGZ1bmN0aW9uIChjb250YWluZXIpIHtcclxuICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5wYXJlbnROb2RlKSB7XHJcbiAgICAgICAgICAgICAgICBjb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb250YWluZXIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIERvY3VtZW50Q2xvbmVyO1xyXG4gICAgfSgpKTtcclxuICAgIHZhciBQc2V1ZG9FbGVtZW50VHlwZTtcclxuICAgIChmdW5jdGlvbiAoUHNldWRvRWxlbWVudFR5cGUpIHtcclxuICAgICAgICBQc2V1ZG9FbGVtZW50VHlwZVtQc2V1ZG9FbGVtZW50VHlwZVtcIkJFRk9SRVwiXSA9IDBdID0gXCJCRUZPUkVcIjtcclxuICAgICAgICBQc2V1ZG9FbGVtZW50VHlwZVtQc2V1ZG9FbGVtZW50VHlwZVtcIkFGVEVSXCJdID0gMV0gPSBcIkFGVEVSXCI7XHJcbiAgICB9KShQc2V1ZG9FbGVtZW50VHlwZSB8fCAoUHNldWRvRWxlbWVudFR5cGUgPSB7fSkpO1xyXG4gICAgdmFyIGNyZWF0ZUlGcmFtZUNvbnRhaW5lciA9IGZ1bmN0aW9uIChvd25lckRvY3VtZW50LCBib3VuZHMpIHtcclxuICAgICAgICB2YXIgY2xvbmVJZnJhbWVDb250YWluZXIgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xyXG4gICAgICAgIGNsb25lSWZyYW1lQ29udGFpbmVyLmNsYXNzTmFtZSA9ICdodG1sMmNhbnZhcy1jb250YWluZXInO1xyXG4gICAgICAgIGNsb25lSWZyYW1lQ29udGFpbmVyLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcclxuICAgICAgICBjbG9uZUlmcmFtZUNvbnRhaW5lci5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICAgICAgY2xvbmVJZnJhbWVDb250YWluZXIuc3R5bGUubGVmdCA9ICctMTAwMDBweCc7XHJcbiAgICAgICAgY2xvbmVJZnJhbWVDb250YWluZXIuc3R5bGUudG9wID0gJzBweCc7XHJcbiAgICAgICAgY2xvbmVJZnJhbWVDb250YWluZXIuc3R5bGUuYm9yZGVyID0gJzAnO1xyXG4gICAgICAgIGNsb25lSWZyYW1lQ29udGFpbmVyLndpZHRoID0gYm91bmRzLndpZHRoLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgY2xvbmVJZnJhbWVDb250YWluZXIuaGVpZ2h0ID0gYm91bmRzLmhlaWdodC50b1N0cmluZygpO1xyXG4gICAgICAgIGNsb25lSWZyYW1lQ29udGFpbmVyLnNjcm9sbGluZyA9ICdubyc7IC8vIGlvcyB3b24ndCBzY3JvbGwgd2l0aG91dCBpdFxyXG4gICAgICAgIGNsb25lSWZyYW1lQ29udGFpbmVyLnNldEF0dHJpYnV0ZShJR05PUkVfQVRUUklCVVRFLCAndHJ1ZScpO1xyXG4gICAgICAgIG93bmVyRG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjbG9uZUlmcmFtZUNvbnRhaW5lcik7XHJcbiAgICAgICAgcmV0dXJuIGNsb25lSWZyYW1lQ29udGFpbmVyO1xyXG4gICAgfTtcclxuICAgIHZhciBpZnJhbWVMb2FkZXIgPSBmdW5jdGlvbiAoaWZyYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgdmFyIGNsb25lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7XHJcbiAgICAgICAgICAgIGlmICghY2xvbmVXaW5kb3cpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoXCJObyB3aW5kb3cgYXNzaWduZWQgZm9yIGlmcmFtZVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZG9jdW1lbnRDbG9uZSA9IGNsb25lV2luZG93LmRvY3VtZW50O1xyXG4gICAgICAgICAgICBjbG9uZVdpbmRvdy5vbmxvYWQgPSBpZnJhbWUub25sb2FkID0gZG9jdW1lbnRDbG9uZS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBjbG9uZVdpbmRvdy5vbmxvYWQgPSBpZnJhbWUub25sb2FkID0gZG9jdW1lbnRDbG9uZS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgdmFyIGludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudENsb25lLmJvZHkuY2hpbGROb2Rlcy5sZW5ndGggPiAwICYmIGRvY3VtZW50Q2xvbmUucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShpZnJhbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sIDUwKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICB2YXIgY29weUNTU1N0eWxlcyA9IGZ1bmN0aW9uIChzdHlsZSwgdGFyZ2V0KSB7XHJcbiAgICAgICAgLy8gRWRnZSBkb2VzIG5vdCBwcm92aWRlIHZhbHVlIGZvciBjc3NUZXh0XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IHN0eWxlLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IHN0eWxlLml0ZW0oaSk7XHJcbiAgICAgICAgICAgIC8vIFNhZmFyaSBzaG93cyBwc2V1ZG9lbGVtZW50cyBpZiBjb250ZW50IGlzIHNldFxyXG4gICAgICAgICAgICBpZiAocHJvcGVydHkgIT09ICdjb250ZW50Jykge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRhcmdldDtcclxuICAgIH07XHJcbiAgICB2YXIgc2VyaWFsaXplRG9jdHlwZSA9IGZ1bmN0aW9uIChkb2N0eXBlKSB7XHJcbiAgICAgICAgdmFyIHN0ciA9ICcnO1xyXG4gICAgICAgIGlmIChkb2N0eXBlKSB7XHJcbiAgICAgICAgICAgIHN0ciArPSAnPCFET0NUWVBFICc7XHJcbiAgICAgICAgICAgIGlmIChkb2N0eXBlLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgIHN0ciArPSBkb2N0eXBlLm5hbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRvY3R5cGUuaW50ZXJuYWxTdWJzZXQpIHtcclxuICAgICAgICAgICAgICAgIHN0ciArPSBkb2N0eXBlLmludGVybmFsU3Vic2V0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChkb2N0eXBlLnB1YmxpY0lkKSB7XHJcbiAgICAgICAgICAgICAgICBzdHIgKz0gXCJcXFwiXCIgKyBkb2N0eXBlLnB1YmxpY0lkICsgXCJcXFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRvY3R5cGUuc3lzdGVtSWQpIHtcclxuICAgICAgICAgICAgICAgIHN0ciArPSBcIlxcXCJcIiArIGRvY3R5cGUuc3lzdGVtSWQgKyBcIlxcXCJcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzdHIgKz0gJz4nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfTtcclxuICAgIHZhciByZXN0b3JlT3duZXJTY3JvbGwgPSBmdW5jdGlvbiAob3duZXJEb2N1bWVudCwgeCwgeSkge1xyXG4gICAgICAgIGlmIChvd25lckRvY3VtZW50ICYmXHJcbiAgICAgICAgICAgIG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgJiZcclxuICAgICAgICAgICAgKHggIT09IG93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcucGFnZVhPZmZzZXQgfHwgeSAhPT0gb3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5wYWdlWU9mZnNldCkpIHtcclxuICAgICAgICAgICAgb3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5zY3JvbGxUbyh4LCB5KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdmFyIHJlc3RvcmVOb2RlU2Nyb2xsID0gZnVuY3Rpb24gKF9hKSB7XHJcbiAgICAgICAgdmFyIGVsZW1lbnQgPSBfYVswXSwgeCA9IF9hWzFdLCB5ID0gX2FbMl07XHJcbiAgICAgICAgZWxlbWVudC5zY3JvbGxMZWZ0ID0geDtcclxuICAgICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IHk7XHJcbiAgICB9O1xyXG4gICAgdmFyIFBTRVVET19CRUZPUkUgPSAnOmJlZm9yZSc7XHJcbiAgICB2YXIgUFNFVURPX0FGVEVSID0gJzphZnRlcic7XHJcbiAgICB2YXIgUFNFVURPX0hJREVfRUxFTUVOVF9DTEFTU19CRUZPUkUgPSAnX19faHRtbDJjYW52YXNfX19wc2V1ZG9lbGVtZW50X2JlZm9yZSc7XHJcbiAgICB2YXIgUFNFVURPX0hJREVfRUxFTUVOVF9DTEFTU19BRlRFUiA9ICdfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnRfYWZ0ZXInO1xyXG4gICAgdmFyIFBTRVVET19ISURFX0VMRU1FTlRfU1RZTEUgPSBcIntcXG4gICAgY29udGVudDogXFxcIlxcXCIgIWltcG9ydGFudDtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cIjtcclxuICAgIHZhciBjcmVhdGVQc2V1ZG9IaWRlU3R5bGVzID0gZnVuY3Rpb24gKGJvZHkpIHtcclxuICAgICAgICBjcmVhdGVTdHlsZXMoYm9keSwgXCIuXCIgKyBQU0VVRE9fSElERV9FTEVNRU5UX0NMQVNTX0JFRk9SRSArIFBTRVVET19CRUZPUkUgKyBQU0VVRE9fSElERV9FTEVNRU5UX1NUWUxFICsgXCJcXG4gICAgICAgICAuXCIgKyBQU0VVRE9fSElERV9FTEVNRU5UX0NMQVNTX0FGVEVSICsgUFNFVURPX0FGVEVSICsgUFNFVURPX0hJREVfRUxFTUVOVF9TVFlMRSk7XHJcbiAgICB9O1xyXG4gICAgdmFyIGNyZWF0ZVN0eWxlcyA9IGZ1bmN0aW9uIChib2R5LCBzdHlsZXMpIHtcclxuICAgICAgICB2YXIgZG9jdW1lbnQgPSBib2R5Lm93bmVyRG9jdW1lbnQ7XHJcbiAgICAgICAgaWYgKGRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XHJcbiAgICAgICAgICAgIHN0eWxlLnRleHRDb250ZW50ID0gc3R5bGVzO1xyXG4gICAgICAgICAgICBib2R5LmFwcGVuZENoaWxkKHN0eWxlKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xuXG4gICAgdmFyIFBhdGhUeXBlO1xyXG4gICAgKGZ1bmN0aW9uIChQYXRoVHlwZSkge1xyXG4gICAgICAgIFBhdGhUeXBlW1BhdGhUeXBlW1wiVkVDVE9SXCJdID0gMF0gPSBcIlZFQ1RPUlwiO1xyXG4gICAgICAgIFBhdGhUeXBlW1BhdGhUeXBlW1wiQkVaSUVSX0NVUlZFXCJdID0gMV0gPSBcIkJFWklFUl9DVVJWRVwiO1xyXG4gICAgfSkoUGF0aFR5cGUgfHwgKFBhdGhUeXBlID0ge30pKTtcclxuICAgIHZhciBlcXVhbFBhdGggPSBmdW5jdGlvbiAoYSwgYikge1xyXG4gICAgICAgIGlmIChhLmxlbmd0aCA9PT0gYi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGEuc29tZShmdW5jdGlvbiAodiwgaSkgeyByZXR1cm4gdiA9PT0gYltpXTsgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH07XHJcbiAgICB2YXIgdHJhbnNmb3JtUGF0aCA9IGZ1bmN0aW9uIChwYXRoLCBkZWx0YVgsIGRlbHRhWSwgZGVsdGFXLCBkZWx0YUgpIHtcclxuICAgICAgICByZXR1cm4gcGF0aC5tYXAoZnVuY3Rpb24gKHBvaW50LCBpbmRleCkge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50LmFkZChkZWx0YVgsIGRlbHRhWSk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50LmFkZChkZWx0YVggKyBkZWx0YVcsIGRlbHRhWSk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50LmFkZChkZWx0YVggKyBkZWx0YVcsIGRlbHRhWSArIGRlbHRhSCk7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50LmFkZChkZWx0YVgsIGRlbHRhWSArIGRlbHRhSCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHBvaW50O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcblxuICAgIHZhciBWZWN0b3IgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gVmVjdG9yKHgsIHkpIHtcclxuICAgICAgICAgICAgdGhpcy50eXBlID0gUGF0aFR5cGUuVkVDVE9SO1xyXG4gICAgICAgICAgICB0aGlzLnggPSB4O1xyXG4gICAgICAgICAgICB0aGlzLnkgPSB5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBWZWN0b3IucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChkZWx0YVgsIGRlbHRhWSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFZlY3Rvcih0aGlzLnggKyBkZWx0YVgsIHRoaXMueSArIGRlbHRhWSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gVmVjdG9yO1xyXG4gICAgfSgpKTtcblxuICAgIHZhciBsZXJwID0gZnVuY3Rpb24gKGEsIGIsIHQpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFZlY3RvcihhLnggKyAoYi54IC0gYS54KSAqIHQsIGEueSArIChiLnkgLSBhLnkpICogdCk7XHJcbiAgICB9O1xyXG4gICAgdmFyIEJlemllckN1cnZlID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIEJlemllckN1cnZlKHN0YXJ0LCBzdGFydENvbnRyb2wsIGVuZENvbnRyb2wsIGVuZCkge1xyXG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBQYXRoVHlwZS5CRVpJRVJfQ1VSVkU7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDtcclxuICAgICAgICAgICAgdGhpcy5zdGFydENvbnRyb2wgPSBzdGFydENvbnRyb2w7XHJcbiAgICAgICAgICAgIHRoaXMuZW5kQ29udHJvbCA9IGVuZENvbnRyb2w7XHJcbiAgICAgICAgICAgIHRoaXMuZW5kID0gZW5kO1xyXG4gICAgICAgIH1cclxuICAgICAgICBCZXppZXJDdXJ2ZS5wcm90b3R5cGUuc3ViZGl2aWRlID0gZnVuY3Rpb24gKHQsIGZpcnN0SGFsZikge1xyXG4gICAgICAgICAgICB2YXIgYWIgPSBsZXJwKHRoaXMuc3RhcnQsIHRoaXMuc3RhcnRDb250cm9sLCB0KTtcclxuICAgICAgICAgICAgdmFyIGJjID0gbGVycCh0aGlzLnN0YXJ0Q29udHJvbCwgdGhpcy5lbmRDb250cm9sLCB0KTtcclxuICAgICAgICAgICAgdmFyIGNkID0gbGVycCh0aGlzLmVuZENvbnRyb2wsIHRoaXMuZW5kLCB0KTtcclxuICAgICAgICAgICAgdmFyIGFiYmMgPSBsZXJwKGFiLCBiYywgdCk7XHJcbiAgICAgICAgICAgIHZhciBiY2NkID0gbGVycChiYywgY2QsIHQpO1xyXG4gICAgICAgICAgICB2YXIgZGVzdCA9IGxlcnAoYWJiYywgYmNjZCwgdCk7XHJcbiAgICAgICAgICAgIHJldHVybiBmaXJzdEhhbGYgPyBuZXcgQmV6aWVyQ3VydmUodGhpcy5zdGFydCwgYWIsIGFiYmMsIGRlc3QpIDogbmV3IEJlemllckN1cnZlKGRlc3QsIGJjY2QsIGNkLCB0aGlzLmVuZCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBCZXppZXJDdXJ2ZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKGRlbHRhWCwgZGVsdGFZKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmV6aWVyQ3VydmUodGhpcy5zdGFydC5hZGQoZGVsdGFYLCBkZWx0YVkpLCB0aGlzLnN0YXJ0Q29udHJvbC5hZGQoZGVsdGFYLCBkZWx0YVkpLCB0aGlzLmVuZENvbnRyb2wuYWRkKGRlbHRhWCwgZGVsdGFZKSwgdGhpcy5lbmQuYWRkKGRlbHRhWCwgZGVsdGFZKSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICBCZXppZXJDdXJ2ZS5wcm90b3R5cGUucmV2ZXJzZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBCZXppZXJDdXJ2ZSh0aGlzLmVuZCwgdGhpcy5lbmRDb250cm9sLCB0aGlzLnN0YXJ0Q29udHJvbCwgdGhpcy5zdGFydCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gQmV6aWVyQ3VydmU7XHJcbiAgICB9KCkpO1xyXG4gICAgdmFyIGlzQmV6aWVyQ3VydmUgPSBmdW5jdGlvbiAocGF0aCkgeyByZXR1cm4gcGF0aC50eXBlID09PSBQYXRoVHlwZS5CRVpJRVJfQ1VSVkU7IH07XG5cbiAgICB2YXIgQm91bmRDdXJ2ZXMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gQm91bmRDdXJ2ZXMoZWxlbWVudCkge1xyXG4gICAgICAgICAgICB2YXIgc3R5bGVzID0gZWxlbWVudC5zdHlsZXM7XHJcbiAgICAgICAgICAgIHZhciBib3VuZHMgPSBlbGVtZW50LmJvdW5kcztcclxuICAgICAgICAgICAgdmFyIF9hID0gZ2V0QWJzb2x1dGVWYWx1ZUZvclR1cGxlKHN0eWxlcy5ib3JkZXJUb3BMZWZ0UmFkaXVzLCBib3VuZHMud2lkdGgsIGJvdW5kcy5oZWlnaHQpLCB0bGggPSBfYVswXSwgdGx2ID0gX2FbMV07XHJcbiAgICAgICAgICAgIHZhciBfYiA9IGdldEFic29sdXRlVmFsdWVGb3JUdXBsZShzdHlsZXMuYm9yZGVyVG9wUmlnaHRSYWRpdXMsIGJvdW5kcy53aWR0aCwgYm91bmRzLmhlaWdodCksIHRyaCA9IF9iWzBdLCB0cnYgPSBfYlsxXTtcclxuICAgICAgICAgICAgdmFyIF9jID0gZ2V0QWJzb2x1dGVWYWx1ZUZvclR1cGxlKHN0eWxlcy5ib3JkZXJCb3R0b21SaWdodFJhZGl1cywgYm91bmRzLndpZHRoLCBib3VuZHMuaGVpZ2h0KSwgYnJoID0gX2NbMF0sIGJydiA9IF9jWzFdO1xyXG4gICAgICAgICAgICB2YXIgX2QgPSBnZXRBYnNvbHV0ZVZhbHVlRm9yVHVwbGUoc3R5bGVzLmJvcmRlckJvdHRvbUxlZnRSYWRpdXMsIGJvdW5kcy53aWR0aCwgYm91bmRzLmhlaWdodCksIGJsaCA9IF9kWzBdLCBibHYgPSBfZFsxXTtcclxuICAgICAgICAgICAgdmFyIGZhY3RvcnMgPSBbXTtcclxuICAgICAgICAgICAgZmFjdG9ycy5wdXNoKCh0bGggKyB0cmgpIC8gYm91bmRzLndpZHRoKTtcclxuICAgICAgICAgICAgZmFjdG9ycy5wdXNoKChibGggKyBicmgpIC8gYm91bmRzLndpZHRoKTtcclxuICAgICAgICAgICAgZmFjdG9ycy5wdXNoKCh0bHYgKyBibHYpIC8gYm91bmRzLmhlaWdodCk7XHJcbiAgICAgICAgICAgIGZhY3RvcnMucHVzaCgodHJ2ICsgYnJ2KSAvIGJvdW5kcy5oZWlnaHQpO1xyXG4gICAgICAgICAgICB2YXIgbWF4RmFjdG9yID0gTWF0aC5tYXguYXBwbHkoTWF0aCwgZmFjdG9ycyk7XHJcbiAgICAgICAgICAgIGlmIChtYXhGYWN0b3IgPiAxKSB7XHJcbiAgICAgICAgICAgICAgICB0bGggLz0gbWF4RmFjdG9yO1xyXG4gICAgICAgICAgICAgICAgdGx2IC89IG1heEZhY3RvcjtcclxuICAgICAgICAgICAgICAgIHRyaCAvPSBtYXhGYWN0b3I7XHJcbiAgICAgICAgICAgICAgICB0cnYgLz0gbWF4RmFjdG9yO1xyXG4gICAgICAgICAgICAgICAgYnJoIC89IG1heEZhY3RvcjtcclxuICAgICAgICAgICAgICAgIGJydiAvPSBtYXhGYWN0b3I7XHJcbiAgICAgICAgICAgICAgICBibGggLz0gbWF4RmFjdG9yO1xyXG4gICAgICAgICAgICAgICAgYmx2IC89IG1heEZhY3RvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgdG9wV2lkdGggPSBib3VuZHMud2lkdGggLSB0cmg7XHJcbiAgICAgICAgICAgIHZhciByaWdodEhlaWdodCA9IGJvdW5kcy5oZWlnaHQgLSBicnY7XHJcbiAgICAgICAgICAgIHZhciBib3R0b21XaWR0aCA9IGJvdW5kcy53aWR0aCAtIGJyaDtcclxuICAgICAgICAgICAgdmFyIGxlZnRIZWlnaHQgPSBib3VuZHMuaGVpZ2h0IC0gYmx2O1xyXG4gICAgICAgICAgICB2YXIgYm9yZGVyVG9wV2lkdGggPSBzdHlsZXMuYm9yZGVyVG9wV2lkdGg7XHJcbiAgICAgICAgICAgIHZhciBib3JkZXJSaWdodFdpZHRoID0gc3R5bGVzLmJvcmRlclJpZ2h0V2lkdGg7XHJcbiAgICAgICAgICAgIHZhciBib3JkZXJCb3R0b21XaWR0aCA9IHN0eWxlcy5ib3JkZXJCb3R0b21XaWR0aDtcclxuICAgICAgICAgICAgdmFyIGJvcmRlckxlZnRXaWR0aCA9IHN0eWxlcy5ib3JkZXJMZWZ0V2lkdGg7XHJcbiAgICAgICAgICAgIHZhciBwYWRkaW5nVG9wID0gZ2V0QWJzb2x1dGVWYWx1ZShzdHlsZXMucGFkZGluZ1RvcCwgZWxlbWVudC5ib3VuZHMud2lkdGgpO1xyXG4gICAgICAgICAgICB2YXIgcGFkZGluZ1JpZ2h0ID0gZ2V0QWJzb2x1dGVWYWx1ZShzdHlsZXMucGFkZGluZ1JpZ2h0LCBlbGVtZW50LmJvdW5kcy53aWR0aCk7XHJcbiAgICAgICAgICAgIHZhciBwYWRkaW5nQm90dG9tID0gZ2V0QWJzb2x1dGVWYWx1ZShzdHlsZXMucGFkZGluZ0JvdHRvbSwgZWxlbWVudC5ib3VuZHMud2lkdGgpO1xyXG4gICAgICAgICAgICB2YXIgcGFkZGluZ0xlZnQgPSBnZXRBYnNvbHV0ZVZhbHVlKHN0eWxlcy5wYWRkaW5nTGVmdCwgZWxlbWVudC5ib3VuZHMud2lkdGgpO1xyXG4gICAgICAgICAgICB0aGlzLnRvcExlZnRCb3JkZXJCb3ggPVxyXG4gICAgICAgICAgICAgICAgdGxoID4gMCB8fCB0bHYgPiAwXHJcbiAgICAgICAgICAgICAgICAgICAgPyBnZXRDdXJ2ZVBvaW50cyhib3VuZHMubGVmdCwgYm91bmRzLnRvcCwgdGxoLCB0bHYsIENPUk5FUi5UT1BfTEVGVClcclxuICAgICAgICAgICAgICAgICAgICA6IG5ldyBWZWN0b3IoYm91bmRzLmxlZnQsIGJvdW5kcy50b3ApO1xyXG4gICAgICAgICAgICB0aGlzLnRvcFJpZ2h0Qm9yZGVyQm94ID1cclxuICAgICAgICAgICAgICAgIHRyaCA+IDAgfHwgdHJ2ID4gMFxyXG4gICAgICAgICAgICAgICAgICAgID8gZ2V0Q3VydmVQb2ludHMoYm91bmRzLmxlZnQgKyB0b3BXaWR0aCwgYm91bmRzLnRvcCwgdHJoLCB0cnYsIENPUk5FUi5UT1BfUklHSFQpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBuZXcgVmVjdG9yKGJvdW5kcy5sZWZ0ICsgYm91bmRzLndpZHRoLCBib3VuZHMudG9wKTtcclxuICAgICAgICAgICAgdGhpcy5ib3R0b21SaWdodEJvcmRlckJveCA9XHJcbiAgICAgICAgICAgICAgICBicmggPiAwIHx8IGJydiA+IDBcclxuICAgICAgICAgICAgICAgICAgICA/IGdldEN1cnZlUG9pbnRzKGJvdW5kcy5sZWZ0ICsgYm90dG9tV2lkdGgsIGJvdW5kcy50b3AgKyByaWdodEhlaWdodCwgYnJoLCBicnYsIENPUk5FUi5CT1RUT01fUklHSFQpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBuZXcgVmVjdG9yKGJvdW5kcy5sZWZ0ICsgYm91bmRzLndpZHRoLCBib3VuZHMudG9wICsgYm91bmRzLmhlaWdodCk7XHJcbiAgICAgICAgICAgIHRoaXMuYm90dG9tTGVmdEJvcmRlckJveCA9XHJcbiAgICAgICAgICAgICAgICBibGggPiAwIHx8IGJsdiA+IDBcclxuICAgICAgICAgICAgICAgICAgICA/IGdldEN1cnZlUG9pbnRzKGJvdW5kcy5sZWZ0LCBib3VuZHMudG9wICsgbGVmdEhlaWdodCwgYmxoLCBibHYsIENPUk5FUi5CT1RUT01fTEVGVClcclxuICAgICAgICAgICAgICAgICAgICA6IG5ldyBWZWN0b3IoYm91bmRzLmxlZnQsIGJvdW5kcy50b3AgKyBib3VuZHMuaGVpZ2h0KTtcclxuICAgICAgICAgICAgdGhpcy50b3BMZWZ0UGFkZGluZ0JveCA9XHJcbiAgICAgICAgICAgICAgICB0bGggPiAwIHx8IHRsdiA+IDBcclxuICAgICAgICAgICAgICAgICAgICA/IGdldEN1cnZlUG9pbnRzKGJvdW5kcy5sZWZ0ICsgYm9yZGVyTGVmdFdpZHRoLCBib3VuZHMudG9wICsgYm9yZGVyVG9wV2lkdGgsIE1hdGgubWF4KDAsIHRsaCAtIGJvcmRlckxlZnRXaWR0aCksIE1hdGgubWF4KDAsIHRsdiAtIGJvcmRlclRvcFdpZHRoKSwgQ09STkVSLlRPUF9MRUZUKVxyXG4gICAgICAgICAgICAgICAgICAgIDogbmV3IFZlY3Rvcihib3VuZHMubGVmdCArIGJvcmRlckxlZnRXaWR0aCwgYm91bmRzLnRvcCArIGJvcmRlclRvcFdpZHRoKTtcclxuICAgICAgICAgICAgdGhpcy50b3BSaWdodFBhZGRpbmdCb3ggPVxyXG4gICAgICAgICAgICAgICAgdHJoID4gMCB8fCB0cnYgPiAwXHJcbiAgICAgICAgICAgICAgICAgICAgPyBnZXRDdXJ2ZVBvaW50cyhib3VuZHMubGVmdCArIE1hdGgubWluKHRvcFdpZHRoLCBib3VuZHMud2lkdGggKyBib3JkZXJMZWZ0V2lkdGgpLCBib3VuZHMudG9wICsgYm9yZGVyVG9wV2lkdGgsIHRvcFdpZHRoID4gYm91bmRzLndpZHRoICsgYm9yZGVyTGVmdFdpZHRoID8gMCA6IHRyaCAtIGJvcmRlckxlZnRXaWR0aCwgdHJ2IC0gYm9yZGVyVG9wV2lkdGgsIENPUk5FUi5UT1BfUklHSFQpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBuZXcgVmVjdG9yKGJvdW5kcy5sZWZ0ICsgYm91bmRzLndpZHRoIC0gYm9yZGVyUmlnaHRXaWR0aCwgYm91bmRzLnRvcCArIGJvcmRlclRvcFdpZHRoKTtcclxuICAgICAgICAgICAgdGhpcy5ib3R0b21SaWdodFBhZGRpbmdCb3ggPVxyXG4gICAgICAgICAgICAgICAgYnJoID4gMCB8fCBicnYgPiAwXHJcbiAgICAgICAgICAgICAgICAgICAgPyBnZXRDdXJ2ZVBvaW50cyhib3VuZHMubGVmdCArIE1hdGgubWluKGJvdHRvbVdpZHRoLCBib3VuZHMud2lkdGggLSBib3JkZXJMZWZ0V2lkdGgpLCBib3VuZHMudG9wICsgTWF0aC5taW4ocmlnaHRIZWlnaHQsIGJvdW5kcy5oZWlnaHQgKyBib3JkZXJUb3BXaWR0aCksIE1hdGgubWF4KDAsIGJyaCAtIGJvcmRlclJpZ2h0V2lkdGgpLCBicnYgLSBib3JkZXJCb3R0b21XaWR0aCwgQ09STkVSLkJPVFRPTV9SSUdIVClcclxuICAgICAgICAgICAgICAgICAgICA6IG5ldyBWZWN0b3IoYm91bmRzLmxlZnQgKyBib3VuZHMud2lkdGggLSBib3JkZXJSaWdodFdpZHRoLCBib3VuZHMudG9wICsgYm91bmRzLmhlaWdodCAtIGJvcmRlckJvdHRvbVdpZHRoKTtcclxuICAgICAgICAgICAgdGhpcy5ib3R0b21MZWZ0UGFkZGluZ0JveCA9XHJcbiAgICAgICAgICAgICAgICBibGggPiAwIHx8IGJsdiA+IDBcclxuICAgICAgICAgICAgICAgICAgICA/IGdldEN1cnZlUG9pbnRzKGJvdW5kcy5sZWZ0ICsgYm9yZGVyTGVmdFdpZHRoLCBib3VuZHMudG9wICsgbGVmdEhlaWdodCwgTWF0aC5tYXgoMCwgYmxoIC0gYm9yZGVyTGVmdFdpZHRoKSwgYmx2IC0gYm9yZGVyQm90dG9tV2lkdGgsIENPUk5FUi5CT1RUT01fTEVGVClcclxuICAgICAgICAgICAgICAgICAgICA6IG5ldyBWZWN0b3IoYm91bmRzLmxlZnQgKyBib3JkZXJMZWZ0V2lkdGgsIGJvdW5kcy50b3AgKyBib3VuZHMuaGVpZ2h0IC0gYm9yZGVyQm90dG9tV2lkdGgpO1xyXG4gICAgICAgICAgICB0aGlzLnRvcExlZnRDb250ZW50Qm94ID1cclxuICAgICAgICAgICAgICAgIHRsaCA+IDAgfHwgdGx2ID4gMFxyXG4gICAgICAgICAgICAgICAgICAgID8gZ2V0Q3VydmVQb2ludHMoYm91bmRzLmxlZnQgKyBib3JkZXJMZWZ0V2lkdGggKyBwYWRkaW5nTGVmdCwgYm91bmRzLnRvcCArIGJvcmRlclRvcFdpZHRoICsgcGFkZGluZ1RvcCwgTWF0aC5tYXgoMCwgdGxoIC0gKGJvcmRlckxlZnRXaWR0aCArIHBhZGRpbmdMZWZ0KSksIE1hdGgubWF4KDAsIHRsdiAtIChib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3ApKSwgQ09STkVSLlRPUF9MRUZUKVxyXG4gICAgICAgICAgICAgICAgICAgIDogbmV3IFZlY3Rvcihib3VuZHMubGVmdCArIGJvcmRlckxlZnRXaWR0aCArIHBhZGRpbmdMZWZ0LCBib3VuZHMudG9wICsgYm9yZGVyVG9wV2lkdGggKyBwYWRkaW5nVG9wKTtcclxuICAgICAgICAgICAgdGhpcy50b3BSaWdodENvbnRlbnRCb3ggPVxyXG4gICAgICAgICAgICAgICAgdHJoID4gMCB8fCB0cnYgPiAwXHJcbiAgICAgICAgICAgICAgICAgICAgPyBnZXRDdXJ2ZVBvaW50cyhib3VuZHMubGVmdCArIE1hdGgubWluKHRvcFdpZHRoLCBib3VuZHMud2lkdGggKyBib3JkZXJMZWZ0V2lkdGggKyBwYWRkaW5nTGVmdCksIGJvdW5kcy50b3AgKyBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3AsIHRvcFdpZHRoID4gYm91bmRzLndpZHRoICsgYm9yZGVyTGVmdFdpZHRoICsgcGFkZGluZ0xlZnQgPyAwIDogdHJoIC0gYm9yZGVyTGVmdFdpZHRoICsgcGFkZGluZ0xlZnQsIHRydiAtIChib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3ApLCBDT1JORVIuVE9QX1JJR0hUKVxyXG4gICAgICAgICAgICAgICAgICAgIDogbmV3IFZlY3Rvcihib3VuZHMubGVmdCArIGJvdW5kcy53aWR0aCAtIChib3JkZXJSaWdodFdpZHRoICsgcGFkZGluZ1JpZ2h0KSwgYm91bmRzLnRvcCArIGJvcmRlclRvcFdpZHRoICsgcGFkZGluZ1RvcCk7XHJcbiAgICAgICAgICAgIHRoaXMuYm90dG9tUmlnaHRDb250ZW50Qm94ID1cclxuICAgICAgICAgICAgICAgIGJyaCA+IDAgfHwgYnJ2ID4gMFxyXG4gICAgICAgICAgICAgICAgICAgID8gZ2V0Q3VydmVQb2ludHMoYm91bmRzLmxlZnQgKyBNYXRoLm1pbihib3R0b21XaWR0aCwgYm91bmRzLndpZHRoIC0gKGJvcmRlckxlZnRXaWR0aCArIHBhZGRpbmdMZWZ0KSksIGJvdW5kcy50b3AgKyBNYXRoLm1pbihyaWdodEhlaWdodCwgYm91bmRzLmhlaWdodCArIGJvcmRlclRvcFdpZHRoICsgcGFkZGluZ1RvcCksIE1hdGgubWF4KDAsIGJyaCAtIChib3JkZXJSaWdodFdpZHRoICsgcGFkZGluZ1JpZ2h0KSksIGJydiAtIChib3JkZXJCb3R0b21XaWR0aCArIHBhZGRpbmdCb3R0b20pLCBDT1JORVIuQk9UVE9NX1JJR0hUKVxyXG4gICAgICAgICAgICAgICAgICAgIDogbmV3IFZlY3Rvcihib3VuZHMubGVmdCArIGJvdW5kcy53aWR0aCAtIChib3JkZXJSaWdodFdpZHRoICsgcGFkZGluZ1JpZ2h0KSwgYm91bmRzLnRvcCArIGJvdW5kcy5oZWlnaHQgLSAoYm9yZGVyQm90dG9tV2lkdGggKyBwYWRkaW5nQm90dG9tKSk7XHJcbiAgICAgICAgICAgIHRoaXMuYm90dG9tTGVmdENvbnRlbnRCb3ggPVxyXG4gICAgICAgICAgICAgICAgYmxoID4gMCB8fCBibHYgPiAwXHJcbiAgICAgICAgICAgICAgICAgICAgPyBnZXRDdXJ2ZVBvaW50cyhib3VuZHMubGVmdCArIGJvcmRlckxlZnRXaWR0aCArIHBhZGRpbmdMZWZ0LCBib3VuZHMudG9wICsgbGVmdEhlaWdodCwgTWF0aC5tYXgoMCwgYmxoIC0gKGJvcmRlckxlZnRXaWR0aCArIHBhZGRpbmdMZWZ0KSksIGJsdiAtIChib3JkZXJCb3R0b21XaWR0aCArIHBhZGRpbmdCb3R0b20pLCBDT1JORVIuQk9UVE9NX0xFRlQpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBuZXcgVmVjdG9yKGJvdW5kcy5sZWZ0ICsgYm9yZGVyTGVmdFdpZHRoICsgcGFkZGluZ0xlZnQsIGJvdW5kcy50b3AgKyBib3VuZHMuaGVpZ2h0IC0gKGJvcmRlckJvdHRvbVdpZHRoICsgcGFkZGluZ0JvdHRvbSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gQm91bmRDdXJ2ZXM7XHJcbiAgICB9KCkpO1xyXG4gICAgdmFyIENPUk5FUjtcclxuICAgIChmdW5jdGlvbiAoQ09STkVSKSB7XHJcbiAgICAgICAgQ09STkVSW0NPUk5FUltcIlRPUF9MRUZUXCJdID0gMF0gPSBcIlRPUF9MRUZUXCI7XHJcbiAgICAgICAgQ09STkVSW0NPUk5FUltcIlRPUF9SSUdIVFwiXSA9IDFdID0gXCJUT1BfUklHSFRcIjtcclxuICAgICAgICBDT1JORVJbQ09STkVSW1wiQk9UVE9NX1JJR0hUXCJdID0gMl0gPSBcIkJPVFRPTV9SSUdIVFwiO1xyXG4gICAgICAgIENPUk5FUltDT1JORVJbXCJCT1RUT01fTEVGVFwiXSA9IDNdID0gXCJCT1RUT01fTEVGVFwiO1xyXG4gICAgfSkoQ09STkVSIHx8IChDT1JORVIgPSB7fSkpO1xyXG4gICAgdmFyIGdldEN1cnZlUG9pbnRzID0gZnVuY3Rpb24gKHgsIHksIHIxLCByMiwgcG9zaXRpb24pIHtcclxuICAgICAgICB2YXIga2FwcGEgPSA0ICogKChNYXRoLnNxcnQoMikgLSAxKSAvIDMpO1xyXG4gICAgICAgIHZhciBveCA9IHIxICoga2FwcGE7IC8vIGNvbnRyb2wgcG9pbnQgb2Zmc2V0IGhvcml6b250YWxcclxuICAgICAgICB2YXIgb3kgPSByMiAqIGthcHBhOyAvLyBjb250cm9sIHBvaW50IG9mZnNldCB2ZXJ0aWNhbFxyXG4gICAgICAgIHZhciB4bSA9IHggKyByMTsgLy8geC1taWRkbGVcclxuICAgICAgICB2YXIgeW0gPSB5ICsgcjI7IC8vIHktbWlkZGxlXHJcbiAgICAgICAgc3dpdGNoIChwb3NpdGlvbikge1xyXG4gICAgICAgICAgICBjYXNlIENPUk5FUi5UT1BfTEVGVDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQmV6aWVyQ3VydmUobmV3IFZlY3Rvcih4LCB5bSksIG5ldyBWZWN0b3IoeCwgeW0gLSBveSksIG5ldyBWZWN0b3IoeG0gLSBveCwgeSksIG5ldyBWZWN0b3IoeG0sIHkpKTtcclxuICAgICAgICAgICAgY2FzZSBDT1JORVIuVE9QX1JJR0hUOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCZXppZXJDdXJ2ZShuZXcgVmVjdG9yKHgsIHkpLCBuZXcgVmVjdG9yKHggKyBveCwgeSksIG5ldyBWZWN0b3IoeG0sIHltIC0gb3kpLCBuZXcgVmVjdG9yKHhtLCB5bSkpO1xyXG4gICAgICAgICAgICBjYXNlIENPUk5FUi5CT1RUT01fUklHSFQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJlemllckN1cnZlKG5ldyBWZWN0b3IoeG0sIHkpLCBuZXcgVmVjdG9yKHhtLCB5ICsgb3kpLCBuZXcgVmVjdG9yKHggKyBveCwgeW0pLCBuZXcgVmVjdG9yKHgsIHltKSk7XHJcbiAgICAgICAgICAgIGNhc2UgQ09STkVSLkJPVFRPTV9MRUZUOlxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCZXppZXJDdXJ2ZShuZXcgVmVjdG9yKHhtLCB5bSksIG5ldyBWZWN0b3IoeG0gLSBveCwgeW0pLCBuZXcgVmVjdG9yKHgsIHkgKyBveSksIG5ldyBWZWN0b3IoeCwgeSkpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgY2FsY3VsYXRlQm9yZGVyQm94UGF0aCA9IGZ1bmN0aW9uIChjdXJ2ZXMpIHtcclxuICAgICAgICByZXR1cm4gW2N1cnZlcy50b3BMZWZ0Qm9yZGVyQm94LCBjdXJ2ZXMudG9wUmlnaHRCb3JkZXJCb3gsIGN1cnZlcy5ib3R0b21SaWdodEJvcmRlckJveCwgY3VydmVzLmJvdHRvbUxlZnRCb3JkZXJCb3hdO1xyXG4gICAgfTtcclxuICAgIHZhciBjYWxjdWxhdGVDb250ZW50Qm94UGF0aCA9IGZ1bmN0aW9uIChjdXJ2ZXMpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICBjdXJ2ZXMudG9wTGVmdENvbnRlbnRCb3gsXHJcbiAgICAgICAgICAgIGN1cnZlcy50b3BSaWdodENvbnRlbnRCb3gsXHJcbiAgICAgICAgICAgIGN1cnZlcy5ib3R0b21SaWdodENvbnRlbnRCb3gsXHJcbiAgICAgICAgICAgIGN1cnZlcy5ib3R0b21MZWZ0Q29udGVudEJveFxyXG4gICAgICAgIF07XHJcbiAgICB9O1xyXG4gICAgdmFyIGNhbGN1bGF0ZVBhZGRpbmdCb3hQYXRoID0gZnVuY3Rpb24gKGN1cnZlcykge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIGN1cnZlcy50b3BMZWZ0UGFkZGluZ0JveCxcclxuICAgICAgICAgICAgY3VydmVzLnRvcFJpZ2h0UGFkZGluZ0JveCxcclxuICAgICAgICAgICAgY3VydmVzLmJvdHRvbVJpZ2h0UGFkZGluZ0JveCxcclxuICAgICAgICAgICAgY3VydmVzLmJvdHRvbUxlZnRQYWRkaW5nQm94XHJcbiAgICAgICAgXTtcclxuICAgIH07XG5cbiAgICB2YXIgVHJhbnNmb3JtRWZmZWN0ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIFRyYW5zZm9ybUVmZmVjdChvZmZzZXRYLCBvZmZzZXRZLCBtYXRyaXgpIHtcclxuICAgICAgICAgICAgdGhpcy50eXBlID0gMCAvKiBUUkFOU0ZPUk0gKi87XHJcbiAgICAgICAgICAgIHRoaXMub2Zmc2V0WCA9IG9mZnNldFg7XHJcbiAgICAgICAgICAgIHRoaXMub2Zmc2V0WSA9IG9mZnNldFk7XHJcbiAgICAgICAgICAgIHRoaXMubWF0cml4ID0gbWF0cml4O1xyXG4gICAgICAgICAgICB0aGlzLnRhcmdldCA9IDIgLyogQkFDS0dST1VORF9CT1JERVJTICovIHwgNCAvKiBDT05URU5UICovO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gVHJhbnNmb3JtRWZmZWN0O1xyXG4gICAgfSgpKTtcclxuICAgIHZhciBDbGlwRWZmZWN0ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGZ1bmN0aW9uIENsaXBFZmZlY3QocGF0aCwgdGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IDEgLyogQ0xJUCAqLztcclxuICAgICAgICAgICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7XHJcbiAgICAgICAgICAgIHRoaXMucGF0aCA9IHBhdGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBDbGlwRWZmZWN0O1xyXG4gICAgfSgpKTtcclxuICAgIHZhciBpc1RyYW5zZm9ybUVmZmVjdCA9IGZ1bmN0aW9uIChlZmZlY3QpIHtcclxuICAgICAgICByZXR1cm4gZWZmZWN0LnR5cGUgPT09IDAgLyogVFJBTlNGT1JNICovO1xyXG4gICAgfTtcclxuICAgIHZhciBpc0NsaXBFZmZlY3QgPSBmdW5jdGlvbiAoZWZmZWN0KSB7IHJldHVybiBlZmZlY3QudHlwZSA9PT0gMSAvKiBDTElQICovOyB9O1xuXG4gICAgdmFyIFN0YWNraW5nQ29udGV4dCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBmdW5jdGlvbiBTdGFja2luZ0NvbnRleHQoY29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudCA9IGNvbnRhaW5lcjtcclxuICAgICAgICAgICAgdGhpcy5pbmxpbmVMZXZlbCA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLm5vbklubGluZUxldmVsID0gW107XHJcbiAgICAgICAgICAgIHRoaXMubmVnYXRpdmVaSW5kZXggPSBbXTtcclxuICAgICAgICAgICAgdGhpcy56ZXJvT3JBdXRvWkluZGV4T3JUcmFuc2Zvcm1lZE9yT3BhY2l0eSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aXZlWkluZGV4ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMubm9uUG9zaXRpb25lZEZsb2F0cyA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLm5vblBvc2l0aW9uZWRJbmxpbmVMZXZlbCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU3RhY2tpbmdDb250ZXh0O1xyXG4gICAgfSgpKTtcclxuICAgIHZhciBFbGVtZW50UGFpbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gRWxlbWVudFBhaW50KGVsZW1lbnQsIHBhcmVudFN0YWNrKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyID0gZWxlbWVudDtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3RzID0gcGFyZW50U3RhY2suc2xpY2UoMCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VydmVzID0gbmV3IEJvdW5kQ3VydmVzKGVsZW1lbnQpO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5zdHlsZXMudHJhbnNmb3JtICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb2Zmc2V0WCA9IGVsZW1lbnQuYm91bmRzLmxlZnQgKyBlbGVtZW50LnN0eWxlcy50cmFuc2Zvcm1PcmlnaW5bMF0ubnVtYmVyO1xyXG4gICAgICAgICAgICAgICAgdmFyIG9mZnNldFkgPSBlbGVtZW50LmJvdW5kcy50b3AgKyBlbGVtZW50LnN0eWxlcy50cmFuc2Zvcm1PcmlnaW5bMV0ubnVtYmVyO1xyXG4gICAgICAgICAgICAgICAgdmFyIG1hdHJpeCA9IGVsZW1lbnQuc3R5bGVzLnRyYW5zZm9ybTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWZmZWN0cy5wdXNoKG5ldyBUcmFuc2Zvcm1FZmZlY3Qob2Zmc2V0WCwgb2Zmc2V0WSwgbWF0cml4KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuc3R5bGVzLm92ZXJmbG93WCAhPT0gT1ZFUkZMT1cuVklTSUJMRSkge1xyXG4gICAgICAgICAgICAgICAgdmFyIGJvcmRlckJveCA9IGNhbGN1bGF0ZUJvcmRlckJveFBhdGgodGhpcy5jdXJ2ZXMpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHBhZGRpbmdCb3ggPSBjYWxjdWxhdGVQYWRkaW5nQm94UGF0aCh0aGlzLmN1cnZlcyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXF1YWxQYXRoKGJvcmRlckJveCwgcGFkZGluZ0JveCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVmZmVjdHMucHVzaChuZXcgQ2xpcEVmZmVjdChib3JkZXJCb3gsIDIgLyogQkFDS0dST1VORF9CT1JERVJTICovIHwgNCAvKiBDT05URU5UICovKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVmZmVjdHMucHVzaChuZXcgQ2xpcEVmZmVjdChib3JkZXJCb3gsIDIgLyogQkFDS0dST1VORF9CT1JERVJTICovKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lZmZlY3RzLnB1c2gobmV3IENsaXBFZmZlY3QocGFkZGluZ0JveCwgNCAvKiBDT05URU5UICovKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgRWxlbWVudFBhaW50LnByb3RvdHlwZS5nZXRQYXJlbnRFZmZlY3RzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgZWZmZWN0cyA9IHRoaXMuZWZmZWN0cy5zbGljZSgwKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyLnN0eWxlcy5vdmVyZmxvd1ggIT09IE9WRVJGTE9XLlZJU0lCTEUpIHtcclxuICAgICAgICAgICAgICAgIHZhciBib3JkZXJCb3ggPSBjYWxjdWxhdGVCb3JkZXJCb3hQYXRoKHRoaXMuY3VydmVzKTtcclxuICAgICAgICAgICAgICAgIHZhciBwYWRkaW5nQm94ID0gY2FsY3VsYXRlUGFkZGluZ0JveFBhdGgodGhpcy5jdXJ2ZXMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFlcXVhbFBhdGgoYm9yZGVyQm94LCBwYWRkaW5nQm94KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVmZmVjdHMucHVzaChuZXcgQ2xpcEVmZmVjdChwYWRkaW5nQm94LCAyIC8qIEJBQ0tHUk9VTkRfQk9SREVSUyAqLyB8IDQgLyogQ09OVEVOVCAqLykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBlZmZlY3RzO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIEVsZW1lbnRQYWludDtcclxuICAgIH0oKSk7XHJcbiAgICB2YXIgcGFyc2VTdGFja1RyZWUgPSBmdW5jdGlvbiAocGFyZW50LCBzdGFja2luZ0NvbnRleHQsIHJlYWxTdGFja2luZ0NvbnRleHQsIGxpc3RJdGVtcykge1xyXG4gICAgICAgIHBhcmVudC5jb250YWluZXIuZWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcclxuICAgICAgICAgICAgdmFyIHRyZWF0QXNSZWFsU3RhY2tpbmdDb250ZXh0ID0gY29udGFpbnMoY2hpbGQuZmxhZ3MsIDQgLyogQ1JFQVRFU19SRUFMX1NUQUNLSU5HX0NPTlRFWFQgKi8pO1xyXG4gICAgICAgICAgICB2YXIgY3JlYXRlc1N0YWNraW5nQ29udGV4dCA9IGNvbnRhaW5zKGNoaWxkLmZsYWdzLCAyIC8qIENSRUFURVNfU1RBQ0tJTkdfQ09OVEVYVCAqLyk7XHJcbiAgICAgICAgICAgIHZhciBwYWludENvbnRhaW5lciA9IG5ldyBFbGVtZW50UGFpbnQoY2hpbGQsIHBhcmVudC5nZXRQYXJlbnRFZmZlY3RzKCkpO1xyXG4gICAgICAgICAgICBpZiAoY29udGFpbnMoY2hpbGQuc3R5bGVzLmRpc3BsYXksIDIwNDggLyogTElTVF9JVEVNICovKSkge1xyXG4gICAgICAgICAgICAgICAgbGlzdEl0ZW1zLnB1c2gocGFpbnRDb250YWluZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBsaXN0T3duZXJJdGVtcyA9IGNvbnRhaW5zKGNoaWxkLmZsYWdzLCA4IC8qIElTX0xJU1RfT1dORVIgKi8pID8gW10gOiBsaXN0SXRlbXM7XHJcbiAgICAgICAgICAgIGlmICh0cmVhdEFzUmVhbFN0YWNraW5nQ29udGV4dCB8fCBjcmVhdGVzU3RhY2tpbmdDb250ZXh0KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcGFyZW50U3RhY2sgPSB0cmVhdEFzUmVhbFN0YWNraW5nQ29udGV4dCB8fCBjaGlsZC5zdHlsZXMuaXNQb3NpdGlvbmVkKCkgPyByZWFsU3RhY2tpbmdDb250ZXh0IDogc3RhY2tpbmdDb250ZXh0O1xyXG4gICAgICAgICAgICAgICAgdmFyIHN0YWNrID0gbmV3IFN0YWNraW5nQ29udGV4dChwYWludENvbnRhaW5lcik7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQuc3R5bGVzLmlzUG9zaXRpb25lZCgpIHx8IGNoaWxkLnN0eWxlcy5vcGFjaXR5IDwgMSB8fCBjaGlsZC5zdHlsZXMuaXNUcmFuc2Zvcm1lZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG9yZGVyXzEgPSBjaGlsZC5zdHlsZXMuekluZGV4Lm9yZGVyO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcmRlcl8xIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXhfMSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFN0YWNrLm5lZ2F0aXZlWkluZGV4LnNvbWUoZnVuY3Rpb24gKGN1cnJlbnQsIGkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmRlcl8xID4gY3VycmVudC5lbGVtZW50LmNvbnRhaW5lci5zdHlsZXMuekluZGV4Lm9yZGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfMSA9IGk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaW5kZXhfMSA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFN0YWNrLm5lZ2F0aXZlWkluZGV4LnNwbGljZShpbmRleF8xLCAwLCBzdGFjayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9yZGVyXzEgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpbmRleF8yID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50U3RhY2sucG9zaXRpdmVaSW5kZXguc29tZShmdW5jdGlvbiAoY3VycmVudCwgaSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9yZGVyXzEgPiBjdXJyZW50LmVsZW1lbnQuY29udGFpbmVyLnN0eWxlcy56SW5kZXgub3JkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleF8yID0gaSArIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaW5kZXhfMiA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFN0YWNrLnBvc2l0aXZlWkluZGV4LnNwbGljZShpbmRleF8yLCAwLCBzdGFjayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRTdGFjay56ZXJvT3JBdXRvWkluZGV4T3JUcmFuc2Zvcm1lZE9yT3BhY2l0eS5wdXNoKHN0YWNrKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQuc3R5bGVzLmlzRmxvYXRpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRTdGFjay5ub25Qb3NpdGlvbmVkRmxvYXRzLnB1c2goc3RhY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50U3RhY2subm9uUG9zaXRpb25lZElubGluZUxldmVsLnB1c2goc3RhY2spO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHBhcnNlU3RhY2tUcmVlKHBhaW50Q29udGFpbmVyLCBzdGFjaywgdHJlYXRBc1JlYWxTdGFja2luZ0NvbnRleHQgPyBzdGFjayA6IHJlYWxTdGFja2luZ0NvbnRleHQsIGxpc3RPd25lckl0ZW1zKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC5zdHlsZXMuaXNJbmxpbmVMZXZlbCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhY2tpbmdDb250ZXh0LmlubGluZUxldmVsLnB1c2gocGFpbnRDb250YWluZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhY2tpbmdDb250ZXh0Lm5vbklubGluZUxldmVsLnB1c2gocGFpbnRDb250YWluZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcGFyc2VTdGFja1RyZWUocGFpbnRDb250YWluZXIsIHN0YWNraW5nQ29udGV4dCwgcmVhbFN0YWNraW5nQ29udGV4dCwgbGlzdE93bmVySXRlbXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChjb250YWlucyhjaGlsZC5mbGFncywgOCAvKiBJU19MSVNUX09XTkVSICovKSkge1xyXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0xpc3RJdGVtcyhjaGlsZCwgbGlzdE93bmVySXRlbXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgdmFyIHByb2Nlc3NMaXN0SXRlbXMgPSBmdW5jdGlvbiAob3duZXIsIGVsZW1lbnRzKSB7XHJcbiAgICAgICAgdmFyIG51bWJlcmluZyA9IG93bmVyIGluc3RhbmNlb2YgT0xFbGVtZW50Q29udGFpbmVyID8gb3duZXIuc3RhcnQgOiAxO1xyXG4gICAgICAgIHZhciByZXZlcnNlZCA9IG93bmVyIGluc3RhbmNlb2YgT0xFbGVtZW50Q29udGFpbmVyID8gb3duZXIucmV2ZXJzZWQgOiBmYWxzZTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHZhciBpdGVtID0gZWxlbWVudHNbaV07XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmNvbnRhaW5lciBpbnN0YW5jZW9mIExJRWxlbWVudENvbnRhaW5lciAmJlxyXG4gICAgICAgICAgICAgICAgdHlwZW9mIGl0ZW0uY29udGFpbmVyLnZhbHVlID09PSAnbnVtYmVyJyAmJlxyXG4gICAgICAgICAgICAgICAgaXRlbS5jb250YWluZXIudmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIG51bWJlcmluZyA9IGl0ZW0uY29udGFpbmVyLnZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGl0ZW0ubGlzdFZhbHVlID0gY3JlYXRlQ291bnRlclRleHQobnVtYmVyaW5nLCBpdGVtLmNvbnRhaW5lci5zdHlsZXMubGlzdFN0eWxlVHlwZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIG51bWJlcmluZyArPSByZXZlcnNlZCA/IC0xIDogMTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdmFyIHBhcnNlU3RhY2tpbmdDb250ZXh0cyA9IGZ1bmN0aW9uIChjb250YWluZXIpIHtcclxuICAgICAgICB2YXIgcGFpbnRDb250YWluZXIgPSBuZXcgRWxlbWVudFBhaW50KGNvbnRhaW5lciwgW10pO1xyXG4gICAgICAgIHZhciByb290ID0gbmV3IFN0YWNraW5nQ29udGV4dChwYWludENvbnRhaW5lcik7XHJcbiAgICAgICAgdmFyIGxpc3RJdGVtcyA9IFtdO1xyXG4gICAgICAgIHBhcnNlU3RhY2tUcmVlKHBhaW50Q29udGFpbmVyLCByb290LCByb290LCBsaXN0SXRlbXMpO1xyXG4gICAgICAgIHByb2Nlc3NMaXN0SXRlbXMocGFpbnRDb250YWluZXIuY29udGFpbmVyLCBsaXN0SXRlbXMpO1xyXG4gICAgICAgIHJldHVybiByb290O1xyXG4gICAgfTtcblxuICAgIHZhciBwYXJzZVBhdGhGb3JCb3JkZXIgPSBmdW5jdGlvbiAoY3VydmVzLCBib3JkZXJTaWRlKSB7XHJcbiAgICAgICAgc3dpdGNoIChib3JkZXJTaWRlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVQYXRoRnJvbUN1cnZlcyhjdXJ2ZXMudG9wTGVmdEJvcmRlckJveCwgY3VydmVzLnRvcExlZnRQYWRkaW5nQm94LCBjdXJ2ZXMudG9wUmlnaHRCb3JkZXJCb3gsIGN1cnZlcy50b3BSaWdodFBhZGRpbmdCb3gpO1xyXG4gICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUGF0aEZyb21DdXJ2ZXMoY3VydmVzLnRvcFJpZ2h0Qm9yZGVyQm94LCBjdXJ2ZXMudG9wUmlnaHRQYWRkaW5nQm94LCBjdXJ2ZXMuYm90dG9tUmlnaHRCb3JkZXJCb3gsIGN1cnZlcy5ib3R0b21SaWdodFBhZGRpbmdCb3gpO1xyXG4gICAgICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUGF0aEZyb21DdXJ2ZXMoY3VydmVzLmJvdHRvbVJpZ2h0Qm9yZGVyQm94LCBjdXJ2ZXMuYm90dG9tUmlnaHRQYWRkaW5nQm94LCBjdXJ2ZXMuYm90dG9tTGVmdEJvcmRlckJveCwgY3VydmVzLmJvdHRvbUxlZnRQYWRkaW5nQm94KTtcclxuICAgICAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVBhdGhGcm9tQ3VydmVzKGN1cnZlcy5ib3R0b21MZWZ0Qm9yZGVyQm94LCBjdXJ2ZXMuYm90dG9tTGVmdFBhZGRpbmdCb3gsIGN1cnZlcy50b3BMZWZ0Qm9yZGVyQm94LCBjdXJ2ZXMudG9wTGVmdFBhZGRpbmdCb3gpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgY3JlYXRlUGF0aEZyb21DdXJ2ZXMgPSBmdW5jdGlvbiAob3V0ZXIxLCBpbm5lcjEsIG91dGVyMiwgaW5uZXIyKSB7XHJcbiAgICAgICAgdmFyIHBhdGggPSBbXTtcclxuICAgICAgICBpZiAoaXNCZXppZXJDdXJ2ZShvdXRlcjEpKSB7XHJcbiAgICAgICAgICAgIHBhdGgucHVzaChvdXRlcjEuc3ViZGl2aWRlKDAuNSwgZmFsc2UpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHBhdGgucHVzaChvdXRlcjEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXNCZXppZXJDdXJ2ZShvdXRlcjIpKSB7XHJcbiAgICAgICAgICAgIHBhdGgucHVzaChvdXRlcjIuc3ViZGl2aWRlKDAuNSwgdHJ1ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcGF0aC5wdXNoKG91dGVyMik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc0JlemllckN1cnZlKGlubmVyMikpIHtcclxuICAgICAgICAgICAgcGF0aC5wdXNoKGlubmVyMi5zdWJkaXZpZGUoMC41LCB0cnVlKS5yZXZlcnNlKCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcGF0aC5wdXNoKGlubmVyMik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpc0JlemllckN1cnZlKGlubmVyMSkpIHtcclxuICAgICAgICAgICAgcGF0aC5wdXNoKGlubmVyMS5zdWJkaXZpZGUoMC41LCBmYWxzZSkucmV2ZXJzZSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHBhdGgucHVzaChpbm5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment